【发布时间】:2018-02-13 12:56:29
【问题描述】:
这是我的模型
class Message(models.Model):
sender = models.ForeignKey(User, related_name="sender")
receiver = models.ForeignKey(User, related_name="receiver")
msg_content = models.TextField()
只有在当前用户向他们发送消息或他们向当前用户发送消息时,我如何才能过滤掉用户,正如我们在社交网络上看到的那样?
我试过这样的
users = Message.objects.filter(Q(sender=request.user) | Q(receiver=request.user))
但它不起作用。它过滤用户的次数与发生对话的次数相同。
当我使用时
Message.objects.filter(Q(sender=user) | Q(receiver=user)).distinct('sender')
引发错误“此数据库后端不支持 DISTINCT ON 字段”(sqlite3)
请帮我处理这段代码。提前致谢!
【问题讨论】:
-
只是
.distinct()应该可以工作,不是吗? -
将您的数据库后端更改为支持 DISTINCT 的后端。
-
很抱歉,但事实并非如此
-
我应该选择 PostgreSQL 吗?
-
切换到 mysql 或 postgresql。他们支持不同的