Рефакторинг моделей заказов и добавление методов оплаты
This commit is contained in:
@@ -1217,3 +1217,39 @@ def update_product_price_api(request, pk):
|
||||
'success': False,
|
||||
'error': f'Ошибка при обновлении цены: {str(e)}'
|
||||
}, status=500)
|
||||
|
||||
|
||||
def get_payment_methods(request):
|
||||
"""
|
||||
API endpoint для получения списка активных способов оплаты.
|
||||
Используется для динамической загрузки payment methods в JavaScript.
|
||||
|
||||
Возвращает JSON:
|
||||
[
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Наличные курьеру",
|
||||
"code": "cash_to_courier",
|
||||
"description": "Оплата наличными при получении заказа"
|
||||
},
|
||||
...
|
||||
]
|
||||
"""
|
||||
try:
|
||||
from orders.models import PaymentMethod
|
||||
|
||||
# Получаем все активные способы оплаты, упорядоченные по полю order и названию
|
||||
payment_methods = PaymentMethod.objects.filter(
|
||||
is_active=True
|
||||
).order_by('order', 'name').values('id', 'name', 'code', 'description')
|
||||
|
||||
# Преобразуем QuerySet в список
|
||||
methods_list = list(payment_methods)
|
||||
|
||||
return JsonResponse(methods_list, safe=False)
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f'Ошибка при загрузке способов оплаты: {str(e)}')
|
||||
return JsonResponse({
|
||||
'error': f'Ошибка при загрузке способов оплаты: {str(e)}'
|
||||
}, status=500)
|
||||
|
||||
Reference in New Issue
Block a user