Я создаю чат от 1 до 1 чата между пользователями, и я хотел бы показать последнее отправленное сообщение, проблема в том, что когда я зациклирую последнее сообщение последнего номера на мой шаблон, он показывает только одну информацию и Здесь очень много.Как я могу визуализировать значения из цикла из представлений в шаблон?
Вот что у меня в views.py:
def my_rooms(request, username):
user = User.objects.get(username=username)
room_user = Room.objects.all()
print('----------------------------------------')
for room in room_user:
rooms = room.messages.all()[:1]
print(rooms)
return render(request, "my_room.html", {
'rooms': rooms,
})
печать (номера) (каждая статья имеет свой собственный номер приватный чат):
-------------------------------
[]
[<Message: 02-02-2017 09:50AM, user01 to user02 : hey>] #room1
[]
[<Message: 02-02-2017 10:52AM, user01 to user02 : Fine and you ?>] #room2
my_room.html
{% for room in rooms %}
<p>{{ room.client }} : {{ room.message }}</p>
<p>{{ room.timestamp }}</p>
{% endfor %}
Что происходит в моем шаблоне?
Я просто:
[<Message: 02-02-2017 10:52AM, user01 to user02 : Fine and you ?>] #room2
«s ДАННЫЕ опубликованы, но не
[<Message: 02-02-2017 09:50AM, user01 to user02 : hey>] #room1
Почему так? Как я могу показать все данные о соответствующих комнатах?
------ ОБНОВЛЕНИЕ ------
Проблема, которую я пытаюсь решить, что я хотел бы возвращаемые значения из цикла в шаблон. Я просто не понимаю, почему он показывает только 1 результат, а не все for
зацикленные результаты по моему шаблону?
models.py может помочь ему немного яснее:
class Room(models.Model):
gig = models.ForeignKey(Gig, null=True)
creator = models.ForeignKey(User)
...
class Message(models.Model):
client = models.ForeignKey(User, related_name='client', null=True)
seller = models.ForeignKey(User, related_name='seller', null=True)
room = models.ForeignKey(Room, related_name='messages', null=True)
message = models.TextField(max_length=500)
timestamp = models.DateTimeField(default=timezone.now, db_index=True)
...
В чем проблема вы пытаетесь решить?Ваш код, который я боюсь, не очень ясен и зацикливается на всех комнатах, а затем делает еще один запрос для каждой комнаты, которая приведет вашу базу данных к коленкам. Http://meta.stackexchange.com/questions/66377/what- is-the-xy-problem – e4c5
@ e4c5 Спасибо за отзыв, я обновил и попытаюсь сделать его более ясным для следующих сообщений, я просто хочу отображать несколько объектов в свой шаблон через цикл 'for', когда я его пытаюсь чтобы сделать это, как пример кода выше, он просто отображает последние объекты цикла 'for'. – Lindow
Вы переопределяете 'комнаты' на каждой итерации цикла for, поэтому он может содержать только результаты последней итерации. Вероятно, вам нужно добавить их в список. –