#27560: Formset.save for model with foreign key to concrete base model
-------------------------------------+-------------------------------------
               Reporter:  Lorenzo    |          Owner:  nobody
  Peña                               |
                   Type:             |         Status:  new
  Uncategorized                      |
              Component:  Forms      |        Version:  1.9
               Severity:  Normal     |       Keywords:  formset
                                     |  inline_formset
           Triage Stage:             |  inline_formsetfactory
  Unreviewed                         |      Has patch:  0
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  0
                  UI/UX:  0          |
-------------------------------------+-------------------------------------
 {{{
 class A(models.Model):
   pass

 class B(A):
   pass

 class C(models.Model):
   some_model = models.ForeignKey(SomeModel)
   a_link = models.ForeignKey(A)
 }}}

 I'm using an inlineformset_factory where the parent model is SomeModel and
 the child model is C.
 When calling formset.save() I'm getting an error from
 django/forms/models.py (line 910)

 {{{
 910:   pk_value = getattr(self.instance, self.fk.remote_field.field_name)
 911:   setattr(obj, self.fk.get_attname(), getattr(pk_value, 'pk',
 pk_value))
 }}}

 The getattr call fails

 if I wrap both lines in: if hasattr(self.instance,
 self.fk.remote_field.field_name):
 it works good.

 Not sure if the condition is the way to fix the bug or it's just
 preventing the original cause from happening.

--
Ticket URL: <https://code.djangoproject.com/ticket/27560>
Django <https://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 unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/051.c6c034346acbbbd255aeeccfa3da91de%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to