#4937: edit_inline for a reflexive m2m_intermediary
---------------------------------------------+------------------------------
Reporter:  Nicola Larosa <[EMAIL PROTECTED]>  |       Owner:  adrian            
          
  Status:  new                               |   Component:  Admin interface    
         
 Version:  SVN                               |    Keywords:  edit_inline 
m2m_intermediary
   Stage:  Unreviewed                        |   Has_patch:  0                  
         
---------------------------------------------+------------------------------
 This follows the
 [http://www.djangoproject.com/documentation/models/m2m_intermediary/
 m2m_intermediary pattern], but with associations, not between two
 different models, but between pairs of instances of the *same* model.
 
 Given this Person model:
 
 {{{
 class Person(models.Model):
     first_name = models.CharField(maxlength = 100)
     last_name = models.CharField(maxlength = 100)
 }}}
 
 and associating pairs of persons, while adding some data:
 
 {{{
 class Association(models.Model):
     person = models.ForeignKey(Person, related_name='friend_of')
     associate = models.ForeignKey(Person, related_name='friends')
     some_data = models.IntegerField()
 }}}
 
 the admin interface for these models works correctly.
 
 Now, to be able to add Associations while editing Persons, add
 edit_inline and core to Association fields.
 
 When adding them to both !ForeignKey fields:
 
 {{{
 class Association(models.Model):
     person = models.ForeignKey(Person, related_name='friend_of',
         core=True, edit_inline=models.TABULAR)
     associate = models.ForeignKey(Person, related_name='friends',
         core=True, edit_inline=models.TABULAR)
     dummy = models.IntegerField()
 }}}
 
 this error comes out:
 
 {{{
 Traceback (most recent call last):
 File ".../django/template/__init__.py" in render_node
   754. result = node.render(context)
 File ".../django/template/defaulttags.py" in render
   134. nodelist.append(node.render(context))
 File ".../django/contrib/admin/templatetags/admin_modify.py" in render
   171. bound_related_object = relation.bind(
            context['form'], original, bound_related_object_class)
 File ".../django/db/models/related.py" in bind
   129. return bound_related_object_class(self, field_mapping, original)
 File ".../django/contrib/admin/templatetags/admin_modify.py" in __init__
   138. for (i,field_mapping) in self.field_mappings.items() ]
 File ".../django/oldforms/__init__.py" in items
   264. self.fill()
 File ".../django/oldforms/__init__.py" in fill
   283. field = self.parent_manipulator[full_field_name]
 File ".../django/oldforms/__init__.py" in __getitem__
   28. raise KeyError, "Field %s not found\n%s" % (
           field_name, repr(self.fields))
 
   KeyError at /admin/person/add/
   'Field association.0.associate not found
   [FormField "first_name", FormField "last_name",
    FormField "association.0.id", FormField "association.0.person",
    FormField "association.0.dummy",
    FormField "association.1.id", FormField "association.1.person",
    FormField "association.1.dummy",
    FormField "association.2.id", FormField "association.2.person",
    FormField "association.2.dummy",
    FormField "association.0.id", FormField "association.0.person",
    FormField "association.0.dummy",
    FormField "association.1.id", FormField "association.1.person",
    FormField "association.1.dummy",
    FormField "association.2.id", FormField "association.2.person",
    FormField "association.2.dummy"]'
 }}}
 
 When adding edit_inline and core to the first !ForeignKey field only:
 
 {{{
 class Association(models.Model):
     person = models.ForeignKey(Person, related_name='friend_of',
         core=True, edit_inline=models.TABULAR)
     associate = models.ForeignKey(Person, related_name='friends')
     dummy = models.IntegerField()
 }}}
 
 this other error come out:
 
 {{{
 Traceback (most recent call last):
 File ".../django/template/__init__.py" in render_node
   754. result = node.render(context)
 File ".../django/template/defaulttags.py" in render
   134. nodelist.append(node.render(context))
 File ".../django/contrib/admin/templatetags/admin_modify.py" in render
   171. bound_related_object = relation.bind(
            context['form'], original, bound_related_object_class)
 File ".../django/db/models/related.py" in bind
   129. return bound_related_object_class(self, field_mapping, original)
 
   TypeError at /admin/person/add/
   'bool' object is not callable
 }}}

-- 
Ticket URL: <http://code.djangoproject.com/ticket/4937>
Django Code <http://code.djangoproject.com/>
The web framework for perfectionists with deadlines
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to