我希望所有邮件都属于用户A和B之间的收件箱。
我的模特。
class Inbox(models.Model):
by_user = models.ForeignKey(User); # who starts messaging
to_user = models.ForeignKey(User); # second user
class Message(models.Model):
sender = models.ForeignKey(User); # who starts messaging
receiver = models.ForeignKey(User); # second user
inbox = models.ForeignKey(Inbox); # message belongs to the inbox
urls.py
url(r'^chat/(?P<username>\w+)/$', views.getMessages)
view.py
def getMessages(request, username):
user = User.objects.get(username=username)
# get the inbox related to the request.user and user
inbox = Inbox.objects.get('Whats will I write here');
messages = inbox.messages.all().order_by('-date')
return render(request, "inbox/chatBox.html", {'messages': messages})
有人,请帮我纠正我的urls.py和view.py。
答案 0 :(得分:0)
您错过了网址上的模式。
现在你有了名字的开头,但没有正则表达式。
按照文档here调整urls.py以包含正确的正则表达式模式。
看起来您的观点和网址最终无法回答您在A - B之间获取所有邮件的问题。最好,您可以将所有邮件从A或所有邮件中获取到B.因为您拥有消息上的发件人/收件人,您只需将视图更改为:
def getMessages(request, username):
user = User.objects.get(username=username)
messages = Messages.objects.filter(sender=user).order_by('-date')
return render(request, "inbox/chatBox.html", {'messages': messages})
这最终会向您提供用户在URL中发送的所有消息。