Как очистить модель после того, как связанные с ней инлайн-формы моделей были сохранены на сайте администратора в начале транзакции?
У меня есть такие модели:
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. Возможно, существует какой-то другой способ.