Как использовать логическое поле в шаблоне? - PullRequest
1 голос
/ 11 марта 2019

Итак, я пытаюсь создать модерацию в своем приложении. Сообщение пользователя должно быть ложным, когда его создают, и модератор должен войти и установить для него значение true, чтобы оно появилось.

Я добавил поле в мои модели. Но я изо всех сил пытаюсь заставить истинные из них отображаться в моем шаблоне.

МОДЕЛЬ:

class Post(models.Model):
    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    text = models.TextField()
    created_date = models.DateTimeField(default=timezone.now)
    published_date = models.DateTimeField(blank=True, null=True)
    category = models.ForeignKey(Category, on_delete=models.CASCADE, blank=True, null=True)
    image = models.ImageField(blank=True, null=True)
    live = models.BooleanField(default=False)

МНЕНИЯ:

class IndexView(ListView):
    model = Post
    template_name = "public/index.html"

Я знаю, что мне нужно использовать оператор if, но я не уверен, как его реализовать. Спасибо.

Ответы [ 2 ]

1 голос
/ 12 марта 2019

Лучшим способом было бы переопределить набор запросов в представлении, чтобы получать только живые сообщения.

class IndexView(ListView):
    queryset = Post.objects.filter(live=True)
    template_name = "public/index.html"

Теперь вам не нужно менять шаблон вообще.

0 голосов
/ 12 марта 2019

Вы должны использовать оператор if в шаблоне.

{% for object in object_list %}

    {% if object.live %}
        <div>
          // Here you can put your Post 
        </div>
    {% endif %}

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