Member 13520270 Ответов: 1

Как я могу фильтровать отдельных пользователей в django


Я пытаюсь создать приложение для обмена сообщениями. Вот моя модель,

сообщение класса(модели.Модель):
отправитель = модели.ForeignKey(User, related_name="отправитель")
приемник = модели.ForeignKey(User, related_name="receiver")
msg_content = модели.объект TextField()
created_at = модели.DateTimeField(auto_now_add=True)

Вот что я попробовал в виду,

данные = сообщение.объекты.фильтр(Q(отправитель=запрос.пользователей) | м(приемник=запрос.пользователь))

В шаблоне,

{% для abc в данных %}
{{ abc.приемник }}

{% endfor %}

Здесь я хочу отфильтровать различные получатели и переупорядочить их на основе того, кому "request.user" недавно отправил новое сообщение (как мы видим на платформах социальных сетей). Как я могу это сделать?

Я повешен с этим кодом с 1 месяца, я буду очень благодарен за каждую маленькую помощь :)

Что я уже пробовал:

данные = сообщение.объекты.фильтр(Q(отправитель=запрос.пользователей) | м(приемник=запрос.пользователей)).значения('receiver').distinct().order_by()

И еще я пытался,

данные = сообщение.объекты.фильтр(Q(отправитель=запрос.пользователей) | м(приемник=запрос.пользователь))
receiver_list =
данных.фильтр(отправитель=запрос.пользователей).order_by('created_at').различны ("приемник")

1 Ответов

Рейтинг:
1

Dhruv Singh

В шаблоне используйте если условие, которое проверяет вашего получателя и отправителя на наличие определенного сообщения.
Что-то вроде

{% if abc.receiver == request.user %}
# this means that the current user is the receiver
{% endif %}


Точно так же вы должны быть в состоянии сделать это для abc.sender.

Вам нужно будет передать текущего вошедшего пользователя в контекст(на ваш взгляд).