我有一个带有相关集合的模型,如下所示:
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
我该怎么做?