diff --git a/myproject/customers/views.py b/myproject/customers/views.py
index 500a78e..505b422 100644
--- a/myproject/customers/views.py
+++ b/myproject/customers/views.py
@@ -338,7 +338,7 @@ def api_search_customers(request):
# Если ничего не найдено, предлагаем создать нового клиента
if not results:
results.append({
- 'id': None,
+ 'id': '__create_new__', # Специальный ID для опции создания
'text': f'Создать клиента: "{query}"',
'is_create_option': True,
'search_text': query,
@@ -390,6 +390,7 @@ def api_create_customer(request):
'name': name,
'phone': phone if phone else None,
'email': email if email else None,
+ 'loyalty_tier': 'no_discount', # Значение по умолчанию для новых клиентов
}
# Используем форму для валидации и создания
@@ -409,18 +410,26 @@ def api_create_customer(request):
'email': customer.email if customer.email else '',
}, status=201)
else:
- # Собираем ошибки валидации
+ # Собираем ошибки валидации с указанием полей
errors = []
- for field, field_errors in form.errors.items():
- for error in field_errors:
- errors.append(error)
+ field_labels = {
+ 'name': 'Имя клиента',
+ 'phone': 'Телефон',
+ 'email': 'Email',
+ }
- # Возвращаем первую ошибку
- error_message = errors[0] if errors else 'Ошибка валидации данных'
+ for field, field_errors in form.errors.items():
+ field_label = field_labels.get(field, field)
+ for error in field_errors:
+ errors.append(f'{field_label}: {error}')
+
+ # Возвращаем все ошибки
+ error_message = '
'.join(errors) if errors else 'Ошибка валидации данных'
return JsonResponse({
'success': False,
- 'error': error_message
+ 'error': error_message,
+ 'errors': form.errors # Добавляем детальную информацию об ошибках
}, status=400)
except json.JSONDecodeError:
diff --git a/myproject/orders/templates/orders/order_form.html b/myproject/orders/templates/orders/order_form.html
index 881e166..213c2a3 100644
--- a/myproject/orders/templates/orders/order_form.html
+++ b/myproject/orders/templates/orders/order_form.html
@@ -181,6 +181,137 @@
+
+