From ab840b2ff198ea6e85ead48747a26ec725cc88bd Mon Sep 17 00:00:00 2001 From: Andrey Smakotin Date: Tue, 11 Nov 2025 00:27:15 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=20=D0=BF=D0=BE=20?= =?UTF-8?q?email=20-=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D1=83?= =?UTF-8?q?=D0=B5=D0=BC=20=D1=82=D0=BE=D1=87=D0=BD=D0=BE=D0=B5=20=D1=81?= =?UTF-8?q?=D0=BE=D0=B2=D0=BF=D0=B0=D0=B4=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B2?= =?UTF-8?q?=D0=BC=D0=B5=D1=81=D1=82=D0=BE=20=D1=81=D0=BE=D0=B4=D0=B5=D1=80?= =?UTF-8?q?=D0=B6=D0=B8=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Проблема: При поиске по email использовался icontains (содержит), что приводило к неправильным результатам. Например, поиск по 'test@example.com' находил всех клиентов с 'example.com' в email. Решение: Изменить на email__iexact (точное совпадение без учета регистра). Теперь поиск по email работает корректно: - Ввод несуществующего email не найдёт ничего и предложит создать нового клиента - Ввод существующего email найдёт только клиента с точным совпадением email 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- myproject/customers/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/myproject/customers/views.py b/myproject/customers/views.py index 6be3fa9..5353f0e 100644 --- a/myproject/customers/views.py +++ b/myproject/customers/views.py @@ -153,7 +153,8 @@ def api_search_customers(request): # Ищем по имени, email или телефону # Используем Q-объекты для OR условий - q_objects = Q(name__icontains=query) | Q(email__icontains=query) + # Для email используем iexact (точное совпадение без учета регистра) + q_objects = Q(name__icontains=query) | Q(email__iexact=query) # Для телефона ищем по нормализованному номеру и по цифрам if phone_normalized: