Доступ к 'self.user' или 'self.user_id' в методе clean() модели Django
Мне нужно знать, возможно ли это сделать в методе clean
или save
модели (в идеале clean
), без использования форм, поскольку я хочу, чтобы определенная логика проверки была напрямую связана с моделью, чтобы и формы, и команды менеджера (например, Model.objects.create()
в оболочке или представлениях) проверялись одинаково.
У меня есть ModelB
, где user
является внешним ключом ModelA
.
Затем у меня есть представление, в котором форма для ModelB
проверяется перед созданием ModelB
:
if form.is_valid():
form.save()
Как мы все знаем, form.is_valid()
вызывает model.clean()
через self.instance.full_clean()
. и я хочу подтвердить кое-что о self.user
в рамках clean()
метода ModelB
. Однако в этом чистом методе модели B, self.user
производит:
raise self.RelatedObjectDoesNotExist(
models.ModelB.user.RelatedObjectDoesNotExist: ModelB has no user.
и self.user_id
возвращает None
.
По сути, можно ли ссылаться на self.user или self.user_id в чистом методе ModelB
, или это должно происходить в его методе save
?