Запрос Django работает в оболочке, но jinja не распознает в шаблоне - PullRequest
0 голосов
/ 08 мая 2019

Прямо сейчас я могу выполнить запрос в оболочке 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%}.Любая помощь очень ценится!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...