Как очистить модель после того, как связанные с ней инлайн-формы моделей были сохранены на сайте администратора в начале транзакции?

У меня есть такие модели:

class Advert(CreatedUpdatedMixin):
    ...
    use_pickup = models.BooleanField(
        verbose_name=_('pickup'),
        default=False,
    )
    use_nova_post = models.BooleanField(
        verbose_name=_('nova post'),
        default=False,
    )
    use_courier = models.BooleanField(
        verbose_name=_('courier'),
        default=True,
    )
    ...

    def clean(self):
        if not any([self.use_pickup, self.use_nova_post, self.use_courier]):
            raise ValidationError(
                _('One of next field must be true: use_pickup, use_nova_post, use_courier.'),
                'invalid_use_fields',
            )
        if self.use_pickup and getattr(self, 'address', None) is None:
            raise ValidationError(
                _('Address must be specified if use_pickup field is true.'),
                'empty_address',
            )



class AdvertAddress(Address):
    advert = models.OneToOneField(
        verbose_name=_('advert'),
        to=Advert,
        on_delete=models.CASCADE,
        related_name='address',
    )

Когда я сохраняю модель Advert в админке сайта, возникает ошибка из этого кода:

if self.use_pickup and getattr(self, 'address', None) is None:
    raise ValidationError(
        _('Address must be specified if use_pickup field is true.'),
        'empty_address',
    )

Потому что админ форма проверяет чистоту перед сохранением объявления и рекламного адреса. Единственное, что пришло в голову - изменить changeform_view. Возможно, существует какой-то другой способ.

Вернуться на верх