Opened 18 years ago
Closed 17 years ago
#3849 closed (duplicate)
Saving edit_inline OneToOneField is broken in admin
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | dev |
Severity: | Keywords: | OneToOneField admin edit_inline | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Consider the following model:
class UserProfile(models.Model): user = OneToOneField(User, edit_inline=models.TABULAR) data = models.CharField(maxlength=255, core=True)
Saving a user object in admin interface produces the following error:
Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/django/core/handlers/base.py", line 77, in get_response response = callback(request, *callback_args, **callback_kwargs) File "/usr/lib/python2.4/site-packages/django/contrib/admin/views/decorators.py", line 55, in _checklogin return view_func(request, *args, **kwargs) File "/usr/lib/python2.4/site-packages/django/views/decorators/cache.py", line 39, in _wrapped_view_func response = view_func(request, *args, **kwargs) File "/usr/lib/python2.4/site-packages/django/contrib/admin/views/main.py", line 329, in change_stage new_object = manipulator.save(new_data) File "/usr/lib/python2.4/site-packages/django/db/models/manipulators.py", line 165, in save if rel_new_data[related.opts.pk.name][0]: KeyError: 'user'
Note: this is not the problem with OneToOneField related object not created. The related object already exists in the database.
I know this ticket will probably be considered "invalid" in favour of upcoming admin rewrite, but I'm still going to submit the patch (against revision [4835]) for those who don't have time to wait for the new admin and just want their system working.
Attachments (2)
Change History (5)
by , 18 years ago
Attachment: | onetoonefield-edit_inline.patch added |
---|
comment:1 by , 18 years ago
Component: | Metasystem → Database wrapper |
---|
by , 18 years ago
Attachment: | onetoonefield-edit_inline-related.patch added |
---|
this additional patch seems to be required too
comment:2 by , 18 years ago
Further testing reveals 'EmptyQuerySet' object has no attribute '_collect_sub_objects' - I'm going to stop using OneToOneField and use ForeignKey instead for now...
Thanks Ilya, your patch fixed the saving problem, but seemed to break admin when there was no existing related record. I'm attaching a patch for this too (note to others: you probably want both these patches).