mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Refs #30325 -- Added tests for using count()/exists() with custom managers and reverse M2M relations.
This commit is contained in:
		
				
					committed by
					
						 Mariusz Felisiak
						Mariusz Felisiak
					
				
			
			
				
	
			
			
			
						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()) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user