LINUX.ORG.RU

Django annotate c условием


0

0

Кусок модели:

class NewsInClusters(models.Model):
    news = models.ForeignKey(News)
    cluster = models.ForeignKey(Clusters)
    user = models.ForeignKey(Users, null=True, db_column='user', blank=True)
    include = models.CharField(max_length=1, blank=True)
    class Meta:
        db_table = u'news_in_clusters'

class Clusters(models.Model):
    id = models.IntegerField(primary_key=True)
    title = models.CharField(max_length=600, blank=True)
    complete = models.CharField(max_length=1, blank=True)
    parent = models.ForeignKey('self')
    lock = models.ForeignKey(Users)
    last_openned = models.DateTimeField(null=True, blank=True)
    class Meta:
        db_table = u'clusters'

Нужно получить список кластеров, их количество, для каждого кластера нужно посчитать общее количество новостей и количество новостей, добавленых пользователем с id = 0. Общее количество новостей добавляю так:

completed_clusters = Clusters.objects.filter(complete = 1)\
    .values('id', 'title', 'parent')\
    .annotate(all_count=Count('newsinclusters'))\
    .order_by('-all_count')

А вот как добавить в annotate условие типа 'newsinclusters.user' == 0?


Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.