2013-07-23 162 views
4

我想使用註釋進行過濾。使用註釋在相關字段上使用Django過濾器

這裏是我的代碼:

class Blog(models.Model): 
    name = models.CharField(max_length=100) 

class Reader(models.Model): 
    name = models.CharField(max_length=50) 
    blog= models.ForeignKey(Blog) 
    type = models.ForeignKey(ReaderType) 

class ReaderType(models.Model): 
    name = models.CharField(max_length=50) 

我想所有的博客的具有至少2讀者"male"類型。 我有這樣的代碼來獲取至少有2個讀者的博客:

Blog.objects.annotate(reader_count=Count(reader)).filter(reader_count__gte=2) 

如何添加了一部分過濾器只具有至少2個讀者,他們type="male"

回答

2

你可以在博客在您的查詢中直接過濾讀者類型:

posts_with_multiple_readers = (
    Blog.objects.filter(reader__type__name='male') 
    .annotate(reader_count=Count('reader')) 
    .filter(reader_count__gte=2) 
) 
相關問題