我正在创建一个私有的用户对用户聊天,我面临一个问题,当一个用户与另一个用户发送消息时,这个同样的聊天出现在其他用户的聊天中。你知道吗
假设用户A联系了用户B,用户C看不到用户A和用户B之间发送的消息,但是用户A和用户B可以看到他们在用户C的聊天资料上的讨论,而这些讨论与他们无关。你知道吗
问题:如何使它只显示与发件人和收件人有关的聊天?你知道吗
聊天配置文件在url页面上显示为:/c/<recipient username>/
如下图所示,所有内容都是正确的,因为url用户名与发件人或收件人用户名匹配。你知道吗
正如您在另一张图片上看到的,url用户名与send或recipient用户名无关。你知道吗
这是我的模板文件:
{% for user in users %}
{% if user.client == request.user %}
<li style="text-align:left; background:yellow;">
<p>from {{ user.client }} to <strong>{{ user.worker }} </strong> | {{ user.sent_at }}</p>
<p>{{ user.comment }}</p>
</li>
{% else %}
<li style="text-align:right; background:#eaeaea;">
<p>from {{ user.client }} to <strong>{{ user.worker }}</strong> | {{ user.sent_at }}</p>
<p>{{ user.comment }}</p>
</li>
{% endif %}
{% endfor %}
视图.py
def comment(request, username):
username = User.objects.get(username=username)
user = userComment.objects.filter(Q(sender=request.user) | Q(recipient=request.user)).order_by('sent_at')
context = {'users': user, 'url_username': username}
return render(request, 'add_comment.html', context)
型号.py
class userComment(models.Model):
sender = models.ForeignKey(User, related_name="sender")
recipient = models.ForeignKey(User, blank=True, null=True, related_name="recipient")
sent_at = models.DateTimeField(auto_now_add=True)
comment = models.TextField(max_length=255, null=True)
我不知道这是否与视图或模板有关,有什么建议吗?你知道吗
我想你需要问一下
相关问题 更多 >
编程相关推荐