Opened 18 years ago
Closed 18 years ago
#1861 closed defect (duplicate)
Many2Many problem in AutomaticManipulator, uses premagicremoval 'set_xxx' method
Reported by: | Owned by: | Adrian Holovaty | |
---|---|---|---|
Component: | contrib.admin | Version: | dev |
Severity: | major | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Missing magic removal change?
Revision: 2901
Exception Value: 'Package' object has no attribute 'set_labels'
Exception Location: <mypath>/django/db/models/manipulators.py in save, line 218
Basic version of my models, the exception occurs when using the admin site.
class A(models.Model): ... class Label(models.Model): ... class Package(models.Model): labels = models.ManyToManyField(Label, blank=True, null=True, raw_id_admin=False) a = models.ForeignKey(A, edit_inline=models.STACKED)
If you read RemovingTheMagic in the wiki it says that Many-to-many related lookups has changed and doesn't use set_<name> any more but instead uses <name>.add and so on... My guess is that this is the cause of the problem.
#django/db/models/manipulators.py:215-218 # Save many-to-many objects. for f in related.opts.many_to_many: if child_follow.get(f.name, None) and not f.rel.edit_inline: was_changed = getattr(new_rel_obj, 'set_%s' % f.name)(rel_new_data[f.attname])
I don't quite grasp the code in manipulators.py so I'm not able to supply a patch.
Change History (2)
comment:1 by , 18 years ago
comment:2 by , 18 years ago
Resolution: | → duplicate |
---|---|
Status: | new → closed |
My first bugreport for django and I manged to create a duplicate. I'm sorry for this. Thank you coconutstudio both for your message and the patch!
(I marked this ticket as a resolved: duplicate, I hope that is the correct procedure)
See Ticket #1816 Patch