打印除Django中的一个以外的多个域中的所有名称?
我必须编写一个查询来打印打印除Django中的一个以外的多个域中的所有名称?,django,django-models,django-views,django-templates,Django,Django Models,Django Views,Django Templates,我必须编写一个查询来打印ManyToManyField中除我自己以外的所有名称。模型是这样的: models.py 在每个Chat对象中,在ManyToManyFieldchating\u to字段中有两个用户,一个是当前用户,另一个是他正在聊天的人。我必须打印他正在聊天的所有用户的列表。我目前的方法是这样的chat=chat.objects.filter(chatting\u to=request.user),我正在为模板中的每个对象向用户打印所有的chatting\u。但是有了这个,我的用户
ManyToManyField
中除我自己以外的所有名称。模型是这样的:
models.py
在每个Chat
对象中,在ManyToManyField
chating\u to
字段中有两个用户,一个是当前用户,另一个是他正在聊天的人。我必须打印他正在聊天的所有用户的列表。我目前的方法是这样的chat=chat.objects.filter(chatting\u to=request.user)
,我正在为模板中的每个对象向用户打印所有的chatting\u。但是有了这个,我的用户对象也有了第二个,它位于ManyToManyField
中。如何打印chatting\u to
ManytoManyField
中的所有用户,不包括经过身份验证的用户。
编辑:
我在
视图.py中尝试了这个。现在如何将其放入模板中?聊天是一个非常多的字段,因此聊天的一个对象可以与许多用户聊天
您可以使用exclude将除已登录用户之外的所有聊天信息发送给用户
chat_obj.chatting_to.exclude(id=request.user.id)
要让它在模板中工作,这要容易得多
将{'chats':Chat.objects.all()}
作为上下文传递,并在每个
{% for chat in chats %}
<ul>
{% for chatting_to_user in chat.chatting_to.all %}
{% if chatting_to_user != user %}
<li>{{chatting_to_user.id}}</li>
{% endif %}
{% endfor %}
</ul>
{% endfor %}
{%用于聊天中的聊天%}
{%用于在chat.chating\u to.all%}
{%如果与用户聊天!=用户%}
- {{chating_to_user.id}
{%endif%}
{%endfor%}
{%endfor%}
chat_obj.chatting_to.exclude(id=request.user.id)
{% for chat in chats %}
<ul>
{% for chatting_to_user in chat.chatting_to.all %}
{% if chatting_to_user != user %}
<li>{{chatting_to_user.id}}</li>
{% endif %}
{% endfor %}
</ul>
{% endfor %}