Разрешён NULL для delivery_date в черновиках заказов

- orders/models/delivery.py: delivery_date теперь null=True, blank=True
- Валидация: для черновиков дата необязательна, для обычных заказов - обязательна
- Миграция: 0003_allow_null_delivery_date_for_drafts.py
This commit is contained in:
2026-01-05 01:35:59 +03:00
parent ef0f935aa9
commit e8d232158c
2 changed files with 28 additions and 1 deletions

View File

@@ -0,0 +1,18 @@
# Generated by Django 5.0.10 on 2026-01-04 22:22
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0002_initial'),
]
operations = [
migrations.AlterField(
model_name='delivery',
name='delivery_date',
field=models.DateField(blank=True, help_text='Дата, когда должна быть выполнена доставка (обязательна для не-черновиков)', null=True, verbose_name='Дата доставки'),
),
]

View File

@@ -62,8 +62,10 @@ class Delivery(models.Model):
# Дата и время доставки
delivery_date = models.DateField(
null=True,
blank=True,
verbose_name='Дата доставки',
help_text='Дата, когда должна быть выполнена доставка'
help_text='Дата, когда должна быть выполнена доставка (обязательна для не-черновиков)'
)
time_from = models.TimeField(
@@ -131,6 +133,13 @@ class Delivery(models.Model):
return
# Для не-черновиков полная валидация
# Проверка: дата доставки обязательна
if not self.delivery_date:
raise ValidationError({
'delivery_date': 'Для не-черновиков дата доставки обязательна'
})
# Проверка: для курьерской доставки должен быть адрес
if self.delivery_type == self.DELIVERY_TYPE_COURIER:
if not self.address: