From 9018e16267c864d3cc05b08c5e69950e89ab21dd Mon Sep 17 00:00:00 2001 From: Andrey Smakotin Date: Tue, 11 Nov 2025 01:07:05 +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=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B0=20'No?= =?UTF-8?q?neType'=20=D0=BF=D1=80=D0=B8=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B8=20=D0=BA=D0=BB=D0=B8=D0=B5=D0=BD=D1=82=D0=B0?= =?UTF-8?q?=20=D0=B1=D0=B5=D0=B7=20=D1=82=D0=B5=D0=BB=D0=B5=D1=84=D0=BE?= =?UTF-8?q?=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Проблема: При создании клиента без номера телефона сервер выбрасывал ошибку "'NoneType' object has no attribute 'strip'" Причина: JavaScript отправляет phone: null когда поле пусто, а код пытался вызвать .strip() на None, что вызывает AttributeError. Решение: Добавлена проверка перед вызовом .strip() - Сначала получаем значение (может быть None) - Потом проверяем: если None/пусто, берём '', иначе вызываем .strip() Теперь можно создавать клиентов без номера телефона. Пример: - Имя: Андрей ✓ - Телефон: (пусто) ✓ - Email: (пусто) ✓ - Результат: Клиент успешно создан 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- myproject/customers/views.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/myproject/customers/views.py b/myproject/customers/views.py index baa331f..f13cac6 100644 --- a/myproject/customers/views.py +++ b/myproject/customers/views.py @@ -382,9 +382,14 @@ def api_create_customer(request): try: data = json.loads(request.body) - name = data.get('name', '').strip() - phone = data.get('phone', '').strip() - email = data.get('email', '').strip() + name = data.get('name', '') + phone = data.get('phone') + email = data.get('email', '') + + # Нормализуем строки (может быть None из JavaScript) + name = name.strip() if name else '' + phone = phone.strip() if phone else '' + email = email.strip() if email else '' # Валидация: имя обязательно if not name: