Доступ к '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?

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