class Order(models.Model):
anonymous = models.BooleanField(verbose_name='Аноним')
user = models.ForeignKey(User, on_delete = models.PROTECT, verbose_name = 'Заказчик')
name = models.CharField(max_length=255, verbose_name='Имя')
surname = models.CharField(max_length=255, verbose_name='Фамилия')
patronymic = models.CharField(max_length=255, verbose_name='Отчество', blank=True)
phone = models.CharField(max_length=14, verbose_name='Номер телефона')
email = models.EmailField(verbose_name='Почта')
date_create = models.DateTimeField(auto_now_add=True, verbose_name='Дата создания')
address = models.OneToOneField(Address, on_delete = models.PROTECT, verbose_name='Адрес')
date_delivery = models.DateTimeField(verbose_name='Время доставки')
payment_method = models.ForeignKey(PaymentMethod, on_delete = models.PROTECT, verbose_name = 'Способ оплаты')
status = models.ForeignKey(OrderStatus, on_delete = models.PROTECT, verbose_name = 'Статус')
promotional_code = models.ForeignKey(PromotionalCode, on_delete = models.PROTECT, verbose_name = 'Промокод')
cutlery = models.PositiveSmallIntegerField(verbose_name='Количество столовых приборов')
comment = models.TextField(verbose_name = 'Комментарий')
class Meta:
verbose_name = 'Заказ'
verbose_name_plural = 'Заказы'
Имею такую модель. Сервис подразумевает что заказ можно сделать без регистрации, в таком случае пользователь должен указать name, surname, patronymic, phone, так же в таком случае anonymous будет true, а user будет null
Если пользователь зарегистрирован, то поле anonymous будет false, а user будет содержать id аккаунта, а поля name, surname, patronymic, phone будут оставаться пустыми, как реализовать такое в модели? Или проще сделать все поля необязательными и регулировать этот момент на уровне фронтенда?