Fixed #11107 -- Corrected the generation of sequence reset SQL for m2m fields with an intermediate model. Thanks to J Clifford Dyer for the report and fix.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@11215 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Russell Keith-Magee 2009-07-11 14:22:52 +00:00
parent 55968a6edd
commit 52bc782621
5 changed files with 61 additions and 14 deletions

View file

@ -0,0 +1,34 @@
[
{
"pk": "1",
"model": "m2m_through_regress.person",
"fields": {
"name": "Guido"
}
},
{
"pk": "1",
"model": "auth.user",
"fields": {
"username": "Guido",
"email": "bdfl@python.org",
"password": "abcde"
}
},
{
"pk": "1",
"model": "m2m_through_regress.group",
"fields": {
"name": "Python Core Group"
}
},
{
"pk": "1",
"model": "m2m_through_regress.usermembership",
"fields": {
"user": "1",
"group": "1",
"price": "100"
}
}
]

View file

@ -12,7 +12,9 @@ class Membership(models.Model):
def __unicode__(self):
return "%s is a member of %s" % (self.person.name, self.group.name)
# using custom id column to test ticket #11107
class UserMembership(models.Model):
id = models.AutoField(db_column='usermembership_id', primary_key=True)
user = models.ForeignKey(User)
group = models.ForeignKey('Group')
price = models.IntegerField(default=100)
@ -196,4 +198,12 @@ doing a join.
# Flush the database, just to make sure we can.
>>> management.call_command('flush', verbosity=0, interactive=False)
## Regression test for #11107
Ensure that sequences on m2m_through tables are being created for the through
model, not for a phantom auto-generated m2m table.
>>> management.call_command('loaddata', 'm2m_through', verbosity=0)
>>> management.call_command('dumpdata', 'm2m_through_regress', format='json')
[{"pk": 1, "model": "m2m_through_regress.usermembership", "fields": {"price": 100, "group": 1, "user": 1}}, {"pk": 1, "model": "m2m_through_regress.person", "fields": {"name": "Guido"}}, {"pk": 1, "model": "m2m_through_regress.group", "fields": {"name": "Python Core Group"}}]
"""}