Как вывести значение из конкретной модели/квантового набора Django
Это мой код для представления
def return_chat(request):
context = {'client_name': request.POST['client_name'], 'messages': [], 'datetime': []}
def order_messages():
replies = Replies.objects.all().filter(unique_num=request.POST['unique_num'])
sent_messages = InstantMessages.objects.all().filter(unique_num=request.POST['unique_num']) + 'S'
from itertools import chain
all_messages = list(chain(replies, sent_messages))
all_messages.sort(key=lambda x: x.datetime)
return all_messages
for item in order_messages():
context['messages'].append(item.message)
context['datetime'].append(item.datetime)
return render(request, 'chat.html', context)
Мой HTML код:
<html>
<body>
<div style="position:relative;background-color:#f5f5f5;width:900px;height:500px;border-radius:15px;border:2px solid black;margin:auto;margin-top:10%;">
<div style="position:absolute;left:20px;padding:10px;top:15px;border-left-style:solid;border-left-color:#48b8fa;margin:auto;width:870px;max-height:350px;overflow-y:scroll;">
{% for all_messages in messages %}
<br>
{{ all_messages }}
<br>
{% endfor %}
</div>
<textarea placeholder="Type your message to {{ client_name }} here.." style="background-color:#f5f5f5;position:absolute;width:900px;height:90px;border-bottom-left-radius:15px;border-bottom-right-radius:15px;bottom:0;border:2px solid black;right:-2px;bottom:-2px;padding:20px;margin:auto;padding-right:80px"></textarea>
<button style="position:absolute;width:80px;height:90px;border-bottom-right-radius:15px;bottom:0;border:2px solid black;right:-2px;bottom:-2px;"><b>Send</b></button>
</div>
</body>
</html>
<
Вы можете иметь идентификатор, который различает сообщения между "ответами" и "мгновенными сообщениями". Рассмотрим, что у вас есть поле под названием "message_type" в обеих моделях "InstantMessages" и "Replies". В обеих моделях определение "message_type" одинаково, и оно принимает любое значение из ['recieved' , 'sent'].
.Теперь каждый объект моделей "Replies" и "InstantMessages" имеет это поле "message_type". В шаблоне, в зависимости от значения этого поля, вы можете установить стиль, чтобы текст отображался слева или справа.
.<div style="......."> {% for all_messages in messages %} {% if message.message_type="sent"%} <div style="text-align:right">{{message}}</div> {% else %} <div style="text-align:left">{message}</div> {% endif %} {% endfor %} </div>
