Разрешён 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:
@@ -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='Дата доставки'),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -62,8 +62,10 @@ class Delivery(models.Model):
|
|||||||
|
|
||||||
# Дата и время доставки
|
# Дата и время доставки
|
||||||
delivery_date = models.DateField(
|
delivery_date = models.DateField(
|
||||||
|
null=True,
|
||||||
|
blank=True,
|
||||||
verbose_name='Дата доставки',
|
verbose_name='Дата доставки',
|
||||||
help_text='Дата, когда должна быть выполнена доставка'
|
help_text='Дата, когда должна быть выполнена доставка (обязательна для не-черновиков)'
|
||||||
)
|
)
|
||||||
|
|
||||||
time_from = models.TimeField(
|
time_from = models.TimeField(
|
||||||
@@ -131,6 +133,13 @@ class Delivery(models.Model):
|
|||||||
return
|
return
|
||||||
|
|
||||||
# Для не-черновиков полная валидация
|
# Для не-черновиков полная валидация
|
||||||
|
|
||||||
|
# Проверка: дата доставки обязательна
|
||||||
|
if not self.delivery_date:
|
||||||
|
raise ValidationError({
|
||||||
|
'delivery_date': 'Для не-черновиков дата доставки обязательна'
|
||||||
|
})
|
||||||
|
|
||||||
# Проверка: для курьерской доставки должен быть адрес
|
# Проверка: для курьерской доставки должен быть адрес
|
||||||
if self.delivery_type == self.DELIVERY_TYPE_COURIER:
|
if self.delivery_type == self.DELIVERY_TYPE_COURIER:
|
||||||
if not self.address:
|
if not self.address:
|
||||||
|
|||||||
Reference in New Issue
Block a user