Saving edit_inline OneToOneField is broken in admin
|Reported by:||Owned by:||nobody|
|Component:||Database layer (models, ORM)||Version:||master|
|Severity:||Keywords:||OneToOneField admin edit_inline|
|Has patch:||yes||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
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]: 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 ) for those who don't have time to wait for the new admin and just want their system working.