Admin Inline form validation must go in Model.clean() if AdminInline.form is not specified
|Reported by:||Owned by:||nobody|
|Severity:||Normal||Keywords:||admin inline form validation|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
The Django admin site page (./en/1.5/ref/contrib/admin) should mention something specific about inline form validation regarding where to put clean() code.
It seems that the only way I was able to clean a field changed as part of an admin inline form was in the Model.clean() method. I could not find a place where using clean_myfield() method worked as all for admin inline forms. Note the inline was not part of a formset, as it had a OneToOneField relationship to the main form.
This is not obvious in the documentation as the Model page mentions clean() and clean_field() but nothing about inlines. The documentation on Inlines mentions validation, but nothing on putting the code in the Model.clean(). Perhaps, also a warning that clean_field() is not run for admin inline form updates.
Please correct me if I'm mistaken about validation of inline forms within the Admin interface.
Change History (3)
comment:1 Changed 4 years ago by
|Patch needs improvement:||unset|
comment:2 Changed 4 years ago by
|Summary:||Admin Inline form validation must go in Model.clean() → Admin Inline form validation must go in Model.clean() if AdminInline.form is not specified|