ModelForms check constraints that they should not.
Reported by: |
jamiequint |
Owned by: |
nobody |
Component:
|
Forms
|
Version:
|
1.0
|
Severity:
|
|
Keywords:
|
|
Cc:
|
jamie@…
|
Triage Stage:
|
Accepted
|
Has patch:
|
yes
|
Needs documentation:
|
no
|
Needs tests:
|
no
|
Patch needs improvement:
|
no
|
Easy pickings:
|
no
|
UI/UX:
|
no
|
This is a patch for the changes committed in #8209
If you have a ModelForm with extra fields that represent foreign key relationships between models self.instance._meta.get_field_by_name(name) will find a field with the given name and will attempt to check it. However, this will fail because get_field_by_name[0] will return a RelatedObject rather than a form field object like the code is expecting.
The submitted patch checks the value returned by get_field_by_name which returns true when the given field exists on the model, if this value is False it bypasses the check.
This appears to have been fixed by Karen at some point since this was opened: http://code.djangoproject.com/browser/django/trunk/django/forms/models.py#L245 if this is incorrect feel free to reopen.