﻿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."		new	Forms	1.0			model inheritance foreign key		Unreviewed	0	0	0	0	0	0
