Прямо сейчас я могу выполнить запрос в оболочке python и вернуть его True, но при попытке выполнить репликацию в моем html-шаблоне jinja я не могу получить тот же True-результат.
У меня есть запрос, который помещает Post.object.get (id = 1) в качестве переменной.
P1=Post.objects.get(id=1)
затем выполнил:
P1.liked_by.all()
, что делаетвозвращаемые результаты:
<QuerySet [<User: User object(10)>, <User: User object (12), <User: User
object (13)>]>
затем я помещаю переменную для пользователя, найденного в этом запросе:
JV= User.objects.get(id=10)
Этот идентификатор пользователя находится в запросе P1.liked_by.all ()теперь, когда я проверяю, найден ли он.
JV in P1.liked_by.all()
True
Теперь, когда я пытаюсь получить доступ к этому в моем html шаблоне jinja .Я не могу заставить его проверить это и вернуть истинуДаже если я могу напечатать значения на странице.
Вот мой Views.py:
def topic(request,topic_id):
if not 'u_id' in request.session:
return redirect('/')
print(request.session)
context={
"topic":Topic.objects.get(id=topic_id),
"user":User.objects.get(id=request.session["u_id"]),
"posts":Post.objects.filter(topic=topic_id),
}
return render(request, 'topic.html', context)
Вот мой HTML:
{% for post in posts %}
<div class="cast-content">
<h3>Casting submit by <u>{{post.user.user_name}}!</u></h3>
<p>number of likes:{{post.liked_by.count}}</p>
<p>post id:{{post.id}}</p>
<p>user_id in session= {{user.id}}</p>
<p>liked by:{{post.liked_by.all}}</p>
<img src="{{post.image.url}}" class="post-pix" alt="...">
<br>
<p>post liked_by values: {{post.liked_by.values}}</p>
{% if user.id in post.liked_by.all %}
<a href="/like-remove/{{topic.id}}/{{post.id}}">Un-Like</a>
{% else %}
<form action="/add-like" method="post">
{% csrf_token %}
<input type="hidden" name="post_id" value="{{post.id}}">
<input type="hidden" name="topic" value="{{topic.id}}">
<input type="submit" value="Like">
</form>
{% endif %}
{% if user.id == post.user.id %}
<a href="/post-remove/{{topic.id}}/{{post.id}}">Remove</a>
{% endif %}
</div>
{% endfor %}
Я не могувыяснить, почему я могу напечатать значения в шаблоне, но когда я запускаю оператор {% if%}, чтобы проверить, существует ли он в таблице, он не может найти его, поэтому по умолчанию каждый раз в оператор {% else%}.Любая помощь очень ценится!