Добавлено API для получения списка атрибутов и их значений; обновлены формы для работы с атрибутами через JavaScript
This commit is contained in:
@@ -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})
|
||||
|
||||
Reference in New Issue
Block a user