Django

Code

Changeset 9326

Show
Ignore:
Timestamp:
11/01/08 17:25:41 (2 months ago)
Author:
brosner
Message:

Fixed #9494 -- Ensure the foreign key in an inline formset is always present on the forms. Thanks Fugazi for the report.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/forms/models.py

    r9297 r9326  
    540540    if fk.unique: 
    541541        max_num = 1 
     542    if fields is not None: 
     543        fields = list(fields) 
     544        fields.append(fk.name) 
     545    else: 
     546        # get all the fields for this model that will be generated. 
     547        fields = fields_for_model(model, fields, exclude, formfield_callback).keys() 
     548        fields.append(fk.name) 
    542549    kwargs = { 
    543550        'form': form, 
  • django/trunk/tests/modeltests/model_formsets/models.py

    r9297 r9326  
    697697[{'__all__': [u'Revision with this Repository and Revision already exists.']}] 
    698698 
     699# unique_together with inlineformset_factory with overridden form fields 
     700# Also see #9494 
     701 
     702>>> FormSet = inlineformset_factory(Repository, Revision, fields=('revision',), extra=1) 
     703>>> data = { 
     704...     'revision_set-TOTAL_FORMS': '1', 
     705...     'revision_set-INITIAL_FORMS': '0', 
     706...     'revision_set-0-repository': repository.pk, 
     707...     'revision_set-0-revision': '146239817507f148d448db38840db7c3cbf47c76', 
     708...     'revision_set-0-DELETE': '', 
     709... } 
     710>>> formset = FormSet(data, instance=repository) 
     711>>> formset.is_valid() 
     712False 
     713 
    699714# Use of callable defaults (see bug #7975). 
    700715