【问题标题】:Django query for list of specimens of relationsDjango查询关系样本列表
【发布时间】:2017-05-28 06:56:42
【问题描述】:

我需要从 db 获取所有来自 db 的关系样本。目前我尝试使用

 Msg.objects.filter(Q(u1=request.user)|Q(u2=request.user))

U1 is a sender, U2 is a recipient. (Fields have forgeinkey, to User model)

这是在用户之间发送消息的应用程序。我想创建当前登录用户是 U1 或 U2 的会话列表,并获取列表以显示而没有重复。收件人/发件人只有一个链接

【问题讨论】:

  • 那么你遇到了什么问题?
  • 此查询获取所有关系,然后在对话列表中我有所有消息.. 我只需要获取列表对话,如 facebook、与用户 x 的对话、与用户 y、用户 z 的对话,没有重复
  • 是的,这就是你将得到的然后循环并将它们放入列表中,检查它是否存在于列表中,如果是,则不要添加它们,否则附加它们
  • 嗯,我不能在查询中这样做吗?我不想在模板中过滤超过 20K 的消息
  • 限制它,比如使用分页,或者像fb使用的eagerload,直到点击它不会显示旧消息,

标签: django model aggregate


【解决方案1】:

根据任务描述,正确的解决方案是:

Msg.objects.filter(Q(u1=request.user) | Q(u2=request.user)).distinct()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-06
    • 2011-09-20
    • 2013-08-26
    • 1970-01-01
    • 2010-11-20
    • 2020-01-02
    • 1970-01-01
    • 2018-06-08
    相关资源
    最近更新 更多