我正在尝试在另一组对象中获取Django Minus中的一组对象。我有一个Message模型,其中包含一个指定它所属的线程的线程字段,以及一个存储用户和他/她看过的消息的MessagesRead模型。我正在尝试返回他/她未读取的消息(以警告新消息),即那些未在MessagesRead表中存储为一对的消息。
如下所示:
def unread_messages(user, thread_id):
Message.objects.filter(
self not in MessagesRead.objects.filter(
message__thread_id=thread_id,
user=user,
)
)
我能以某种方式做到上述情况还是有另一种方式?
答案 0 :(得分:1)
这假设MessagesRead有一个外键回到线程,related_name
设置为messagesread_set
def unread_messages(user, thread_id):
Message.objects.filter(
thread_id = thread_id,
).exclude(
messagesread_set__in = MessagesRead.objects.filter(
message__thread_id = thread_id,
user = user,
)
)