フィルタ内の多対多の値を数えます

whitebear:

私はこのようにやろうとしています

私のクラスはこちら

class TweetJson(models.Model):

    authors = models.ManyToManyField(Station)

フィルタ

MyText.objects.filter(Q(authors__count__gte=1))

しかし、それが返されます。

Related Field got invalid lookup: count

多対多のオブジェクトの数をカウントする方法はありますか?

ウィレム・ヴァン・当社:

あなたは注釈を付けることによって、関連するオブジェクトの数を数えることができます。

from django.db.models import Count

MyText.objects.filter(
    nauthors=Count('authors')
).filter(nauthors__gte=1)

ここでは、しかし上でフィルタリングしているMyText少なくとも一つの著者でS。あなたは非のためにフィルタリングすることでそれを行うことができますNULL値は、その後の異なるセットを返します。

MyText.objects.filter(authors__isnull=False).distinct()

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=339497&siteId=1