Django Python if блок в файле шаблона (строка) - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь добавить условие в html-модель в Django (python), и оно не работает:

Это мой HTML-код:

                    <p class="card-text text-muted h6">{{ post.author }} </p>
                    {% if post.author  == 'John_Woo' %}
                    <p class="card-text text-muted h6"> NOK </p>
                    {% else %}
                    <p class="card-text text-muted h6"> ok </p>
                    {% endif %}

Не уверен, что не такздесь ... Несмотря на то, что у меня есть John_Woo автор, я получаю только ок сообщение

Это мои models.py:

class Post(models.Model):
    title = models.CharField(max_length=200, unique=True)
    slug = models.SlugField(max_length=200, unique=True)
    author = models.ForeignKey(User, on_delete= models.CASCADE,related_name='blog_posts')

Это мои views.py:

from django.views import generic
from .models import Post

class PostList(generic.ListView):
    queryset = Post.objects.filter(status=1).order_by('-created_on')
    template_name = 'index.html'

class PostDetail(generic.DetailView):
    model = Post
    template_name = 'post_detail.html'

Ответы [ 2 ]

1 голос
/ 31 октября 2019

Post.author возвращает представление класса в виде ( str , unicode , repr ). Вы должны переопределить эту функцию, которая зависит от вашей версии django. Но у вас есть один способ сравнить это. Нравится if Post.author.first_name == "John_Woo"

1 голос
/ 31 октября 2019

Вы хотите post.author.name (где .name - любое поле объекта User, которое иногда будет содержать строку 'John_Woo')

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