Добавлено API для получения списка атрибутов и их значений; обновлены формы для работы с атрибутами через JavaScript

This commit is contained in:
2025-12-30 02:41:30 +03:00
parent f39ee5f15d
commit a3f2185714
6 changed files with 498 additions and 46 deletions

View File

@@ -245,3 +245,30 @@ def delete_attribute_value_api(request, pk, value_id):
return JsonResponse({'success': False, 'error': 'Значение не найдено'})
except Exception as e:
return JsonResponse({'success': False, 'error': str(e)})
@login_required
def get_attributes_list_api(request):
"""
API для получения списка всех атрибутов с их значениями.
Используется для autocomplete в форме создания вариативного товара.
"""
attributes = ProductAttribute.objects.prefetch_related('values').order_by('position', 'name')
data = []
for attr in attributes:
data.append({
'id': attr.pk,
'name': attr.name,
'slug': attr.slug,
'values': [
{
'id': val.pk,
'value': val.value,
'slug': val.slug
}
for val in attr.values.all().order_by('position', 'value')
]
})
return JsonResponse({'success': True, 'attributes': data})