Opened 17 years ago

Closed 17 years ago

Last modified 15 years ago

#13004 closed (fixed)

The new get_readonly_fields() method of the ModelAdmin breaks with many to many fields

Reported by: hejsan Owned by: nobody
Component: contrib.admin Version: 1.2-beta
Severity: Keywords:
Cc: Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

This breaks if a ManyToMany field is specified as readonly.

This is because the contents() function that is called in the fieldset.html template tries to display the value of the field but gets a ValueError if it is a ManyToManyField because they can't be used: "[Model name] instance needs to have a primary key value before a many-to-many relationship can be used"

Just need to add ValueError to the catch as seen in the patch I attached, called catch_value_error.diff.
Hope it gets merged before beta 2.

Attachments (2)

catch_value_error.diff​ (609 bytes ) - added by hejsan 17 years ago.
Very simple fix, just catch one more Exception
catch_error_with_test-12818.diff​ (2.2 KB ) - added by Mark Lavin 17 years ago.
Added a basic regression test along with the orginal patch.

Download all attachments as: .zip

Change History (6)

by hejsan, 17 years ago

Attachment: catch_value_error.diff​ added

Very simple fix, just catch one more Exception

comment:1 by hejsan, 17 years ago

Component: Uncategorized → Contrib apps
Has patch: set
Version: 1.1 → 1.2-beta

comment:2 by Russell Keith-Magee, 17 years ago

Component: Contrib apps → django.contrib.admin
milestone: → 1.2
Triage Stage: Unreviewed → Accepted

by Mark Lavin, 17 years ago

Added a basic regression test along with the orginal patch.

comment:3 by Karen Tracey, 17 years ago

Resolution: → fixed
Status: new → closed

(In [12827]) Fixed #13004: Ensure the add page for a model with a ManyToManyField specified
in readonly_fields does not raise an exception. Thanks hejsan, mlavin, copelco.

comment:4 by Jacob, 15 years ago

milestone: 1.2

Milestone 1.2 deleted

Note: See TracTickets for help on using tickets.
Back to Top