Refs #30325 -- Added tests for using count()/exists() with custom managers and reverse M2M relations.
This commit is contained in:
parent
5f7991c42c
commit
9ac8520fcd
|
@ -27,6 +27,11 @@ class Tag(models.Model):
|
|||
return self.name
|
||||
|
||||
|
||||
class NoDeletedArticleManager(models.Manager):
|
||||
def get_queryset(self):
|
||||
return super().get_queryset().exclude(headline='deleted')
|
||||
|
||||
|
||||
class Article(models.Model):
|
||||
headline = models.CharField(max_length=100)
|
||||
# Assign a string as name to make sure the intermediary model is
|
||||
|
@ -34,6 +39,8 @@ class Article(models.Model):
|
|||
publications = models.ManyToManyField(Publication, name='publications')
|
||||
tags = models.ManyToManyField(Tag, related_name='tags')
|
||||
|
||||
objects = NoDeletedArticleManager()
|
||||
|
||||
class Meta:
|
||||
ordering = ('headline',)
|
||||
|
||||
|
|
|
@ -580,3 +580,9 @@ class ManyToManyTests(TestCase):
|
|||
]
|
||||
)
|
||||
self.assertQuerysetEqual(b.publications.all(), ['<Publication: Science Weekly>'])
|
||||
|
||||
def test_custom_default_manager_exists_count(self):
|
||||
a5 = Article.objects.create(headline='deleted')
|
||||
a5.publications.add(self.p2)
|
||||
self.assertEqual(self.p2.article_set.count(), self.p2.article_set.all().count())
|
||||
self.assertEqual(self.p3.article_set.exists(), self.p3.article_set.all().exists())
|
||||
|
|
Loading…
Reference in New Issue