﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
10075	model inheritance with foreign key problem	marcominutoli@…	nobody	"I have these three models:

{{{
class Address(models.Model):
   name = models.CharField(max_length=100)
   ## many other fields ##

   class Meta:
       ordering = ('name',)

   def __unicode__(self):
       return self.name


class Organization(models.Model):
   name = models.CharField(max_length=100)
   ## many other fields ##

   class Meta:
       ordering = ('name',)

   def __unicode__(self):
       return self.name


class OrganizationAddress(Address):
   organization = models.ForeignKey (
       Organization,
       related_name = ""addresses"",
   )
}}}

When i try to add/edit an organization and add one address i've got this error:

{{{
      "" ValueError: Cannot assign None: ""OrganizationAddress.address_ptr"" does not allow null values. ""
}}}

I've tried to understand the problem (because it happened since one day to another..) and i've found that the problem was born after the django commit of the changeset [9664]

This is the ""incriminated code"" of changeset:
{{{
	488	        if fk_attname == self._pk_field.attname: 
 	489	            exclude =  [self._pk_field.name] 
 	490	        else: 
 	491	            exclude = []
}}}

I have ""organization_id"" in the fk_attname e ""address_ptr"" in the self._pk_field.attname and so the primary_key wasn't insert in the exclude list.

Below a code portion to test the problem.

{{{
from django.forms.models import inlineformset_factory
from my_apps.models import Organization, Address, OrganizationAddress

Organization(name='test').save()
org = Organization.objects.get(name='test')

inline_formset = inlineformset_factory(Organization, OrganizationAddress, can_delete=False, extra=2)

data = {
   'addresses-TOTAL_FORMS': '2', # the number of forms rendered
   'addresses-INITIAL_FORMS': '0', # the number of forms with initial data
   'addresses-0-name': 'Test test',
}

formset = inline_formset(data, instance=org)

formset.is_valid()
formset.save()
}}}

Sorry for my english.
Marco M."		closed	Forms	1.0		fixed	model inheritance foreign key	raffaele.salmaso@…	Accepted	0	0	0	0	0	0
