#12664: GenericRelation fails if originating model has custom primary key
-------------------------------------+--------------------------------------
Reporter: jbronn | Owner: jbronn
Status: new | Milestone: 1.2
Component: Contrib apps | Version: SVN
Keywords: generic genericrelation | Stage: Unreviewed
Has_patch: 0 |
-------------------------------------+--------------------------------------
Example models, note that `Person` model has a field with
`primary_key=True`:
{{{
#!python
from django.db import models
from django.contrib.contenttypes import generic
from django.contrib.contenttypes.models import ContentType
class Address(models.Model):
street = models.CharField(max_length=80)
city = models.CharField(max_length=50)
state = models.CharField(max_length=2)
zipcode = models.CharField(max_length=5)
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey()
def __unicode__(self):
return '%s %s, %s %s' % (self.street, self.city, self.state,
self.zipcode)
class Person(models.Model):
account = models.IntegerField(primary_key=True)
name = models.CharField(max_length=128)
addresses = generic.GenericRelation(Address)
def __unicode__(self):
return self.name
}}}
Create some test data and query on `addresses` generic relation:
{{{
>>> p = Person.objects.create(account=23, name='Chef')
>>> a = Address.objects.create(street='123 Anywhere Place',
city='Conifer', state='CO', zipcode='80433', content_object=p)
>>> Person.objects.filter(addresses__zipcode='80433')
Traceback (most recent call last):
File
"/Users/jbronn/hg/django/trunk/tests/regressiontests/generic_relations_regress/tests.py",
line 31, in test_reverse_relation_pk
self.assertEqual(1, qs.count())
File "/Users/jbronn/hg/django/trunk/django/db/models/query.py", line
324, in count
return self.query.get_count(using=self.db)
File "/Users/jbronn/hg/django/trunk/django/db/models/sql/query.py", line
369, in get_count
number = obj.get_aggregation(using=using)[None]
File "/Users/jbronn/hg/django/trunk/django/db/models/sql/query.py", line
341, in get_aggregation
result = query.get_compiler(using).execute_sql(SINGLE)
File "/Users/jbronn/hg/django/trunk/django/db/models/sql/compiler.py",
line 674, in execute_sql
cursor.execute(sql, params)
ProgrammingError: column generic_relations_regress_address.account does
not exist
LINE 1: ...R JOIN "generic_relations_regress_address" T3 ON ("generic_r...
}}}
--
Ticket URL: <http://code.djangoproject.com/ticket/12664>
Django <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.