Django Queryset按相关集中的对象数过滤

时间:2019-02-26 09:56:04

标签: python django django-models django-queryset

我有一个带有相关集合的模型,如下所示:


class User(models.Model):
    '''other stuff'''

class Message(models.Model):
    user = models.ForeignKey('app.User')
    chat = models.ForeignKey('app.Chat') # Refers to Chat model below.

class Chat(models.Model):
''' other stuff'''...



例如,当我想通过某个用户发送的某些消息的存在来过滤我的聊天记录时,我会使用类似的内容:

usr = User.objects.filter(pk=123)
chats = Chat.objects.filter(message__user=usr)

这很好,但我想按聊天是否包含一定数量的最少消息(例如,聊天中最少3条消息)进行过滤。理想情况下,我只想使用.filter函数,而无需进行注释。

编辑:我想在.filter函数中进行调用,例如

Chat.objects.filter(message__<count>__gte=3) # This doesn't work

我该怎么做?

0 个答案:

没有答案