Как я могу использовать переменную django в операторе if шаблона django в строковую переменную javascript
Я хочу добавить div на свою страницу с помощью переменной javascript. Этот div должен принимать класс right или left, но мое условие if не работает в этой переменной, и оно работает, если я пытаюсь сделать это без javascript.
Это мое мнение :
def chat(request,sender_id,receiver_id):
if request.user.is_authenticated:
if request.user.profile == 'C' or request.user.profile == 'A':
user = User.objects.filter(id=request.user.id).get()
receiver_user = User.objects.filter(id=receiver_id).get()
if request.user.profile == 'A':
chat = Chat.objects.filter(Q(sender_id=sender_id) | Q(receiver_id=sender_id)).all()
elif request.user.profile == 'C':
chat = Chat.objects.filter(Q(sender_id=sender_id,receiver_id=receiver_id) | Q(sender_id=receiver_id,receiver_id=sender_id))
context = {
'user': user,
'chat': chat,
'receiver_user': receiver_user,
}
return render(request,'chat/chat.html',context)
return render(request, 'Login/logout.html')
А это мой javascript :
$(document).ready(function(){
setInterval(function(){
$.ajax({
type: 'GET',
url : "{% url 'getMessages' request.user.id receiver_user.id %}",
success: function(response){
console.log(response);
$("#display").empty();
for (var key in response.chat)
{
var temp='<div class="msg-box {% if request.user.id == chat.sender_id %} right {% else %} left {% endif %}">\
<div class="details">\
<p class="msg">'+response.chat[key].message+'</p>\
<p class="date">'+response.chat[key].msg_time+'</p></div></div>';
$("#display").append(temp);
}
},
error: function(response){
console.log('An error occured')
}
});
},100);
});
Я не так хорош в js, поэтому я буду использовать частичный html, чтобы ответить на ваш вопрос.
в вашем шаблоне создайте html файл (partial_msg.html):
.def getMessages(request, sender_id, receiver_id): if request.user.profile == 'A': chat = Chat.objects.filter(Q(sender_id=sender_id) | Q(receiver_id=sender_id)).all() elif request.user.profile == 'C': chat = Chat.objects.filter(Q(sender_id=sender_id,receiver_id=receiver_id) | Q(sender_id=receiver_id,receiver_id=sender_id)) return render(request,'partial_msg.html',{'chats':chat}) #new
2)partial_msg.html (только это, без заголовка)
{% for chat in chats %}
<div class="msg-box {% if request.user.id == chat.sender_id %} right {% else %} left {% endif %}">
<div class="details">
<p class="msg">{{ chat.message }}</p>
<p class="date">{{ chat.msg_time }}</p>
</div>
</div>
{% endfor %}
вызовите свой javascript
$(document).ready(function(){ setInterval(function(){ $.ajax({ type: 'GET', url : "{% url 'getMessages' request.user.id receiver_user.id %}", success: function(response){ $("#display").empty(); $("#display").append(response); }, error: function(response){ console.log('An error occured') } }); },1000); });
Примечание: Это просто идея, как вы можете достичь этого, используя django.