I need to know if this is possible in a model’s clean
or save
method (ideally clean
), without using forms, as I want specific validation logic to be directly tied to the model so that both forms and manager commands (e.g., Model.objects.create()
in shell or views) are validated equally.
I have ModelB
where user
is a foreign key of ModelA
.
I then have a view where a form for ModelB
is validated before ModelB
is created:
if form.is_valid():
form.save()
As we all know, form.is_valid()
calls model.clean()
via self.instance.full_clean()
. , and I’m looking to validate something about self.user
under the clean()
method of ModelB
. However, in this Model B clean method, self.user
produces:
raise self.RelatedObjectDoesNotExist(
models.ModelB.user.RelatedObjectDoesNotExist: ModelB has no user.
and self.user_id
returns None
.
Essentially, is it possible to reference self.user or self.user_id in ModelB
‘s clean method, or must it go in its save
method?