为什么我的私人用户会在其他用户的聊天配置文件中显示用户聊天内容?

时间:2017-01-06 23:45:43

标签: python django

我正在为用户聊天创建私人用户,我遇到的问题是,当用户与其他用户发送消息时,同一聊天会出现在其他用户的聊天中。

假设用户A联系了用户B,用户C无法看到用户A和用户A之间发送的消息。 B,但用户A& B可以看到他们对用户C聊天档案的讨论与他们无关。

问题:我该如何制作,以便仅在与发件人和收件人有关时显示聊天内容?

聊天配置文件显示在网址页面上,如下所示:/c/<recipient username>/

如下图所示,一切正确,因为网址用户名与发件人或收件人用户名匹配。

enter image description here

正如您在其他图片上看到的,网址用户名与发送方或收件人用户名无关。

enter image description here

以下是我的模板文件

{% 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 %}

views.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)

models.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)

我不知道它与视图或模板有什么关系,有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我猜你需要查询

operator=