Added tests for m2m queries with custom pk on the end models
It seems this case was fixed somewhere between 1.5.x and 1.6.x. I added tests as I wasn't able to find any tests for these cases. Refs #21879
This commit is contained in:
parent
0ca647357e
commit
8b2c1ac06d
|
@ -258,6 +258,12 @@ class CustomPk(models.Model):
|
||||||
class Related(models.Model):
|
class Related(models.Model):
|
||||||
custom = models.ForeignKey(CustomPk)
|
custom = models.ForeignKey(CustomPk)
|
||||||
|
|
||||||
|
|
||||||
|
class CustomPkTag(models.Model):
|
||||||
|
id = models.CharField(max_length=20, primary_key=True)
|
||||||
|
custom_pk = models.ManyToManyField(CustomPk)
|
||||||
|
tag = models.CharField(max_length=20)
|
||||||
|
|
||||||
# An inter-related setup with a model subclass that has a nullable
|
# An inter-related setup with a model subclass that has a nullable
|
||||||
# path to another model, and a return path from that model.
|
# path to another model, and a return path from that model.
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ from .models import (
|
||||||
BaseA, FK1, Identifier, Program, Channel, Page, Paragraph, Chapter, Book,
|
BaseA, FK1, Identifier, Program, Channel, Page, Paragraph, Chapter, Book,
|
||||||
MyObject, Order, OrderItem, SharedConnection, Task, Staff, StaffUser,
|
MyObject, Order, OrderItem, SharedConnection, Task, Staff, StaffUser,
|
||||||
CategoryRelationship, Ticket21203Parent, Ticket21203Child, Person,
|
CategoryRelationship, Ticket21203Parent, Ticket21203Child, Person,
|
||||||
Company, Employment)
|
Company, Employment, CustomPk, CustomPkTag)
|
||||||
|
|
||||||
|
|
||||||
class BaseQuerysetTest(TestCase):
|
class BaseQuerysetTest(TestCase):
|
||||||
|
@ -3243,3 +3243,16 @@ class ForeignKeyToBaseExcludeTests(TestCase):
|
||||||
SpecialCategory.objects.filter(categoryitem__id=c1.pk),
|
SpecialCategory.objects.filter(categoryitem__id=c1.pk),
|
||||||
[sc1], lambda x: x
|
[sc1], lambda x: x
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class ReverseM2MCustomPkTests(TestCase):
|
||||||
|
def test_ticket_21879(self):
|
||||||
|
cpt1 = CustomPkTag.objects.create(id='cpt1', tag='cpt1')
|
||||||
|
cp1 = CustomPk.objects.create(name='cp1', extra='extra')
|
||||||
|
cp1.custompktag_set.add(cpt1)
|
||||||
|
self.assertQuerysetEqual(
|
||||||
|
CustomPk.objects.filter(custompktag=cpt1), [cp1],
|
||||||
|
lambda x: x)
|
||||||
|
self.assertQuerysetEqual(
|
||||||
|
CustomPkTag.objects.filter(custom_pk=cp1), [cpt1],
|
||||||
|
lambda x: x)
|
||||||
|
|
Loading…
Reference in New Issue