Django - данные из просмотров в HTML - PullRequest
0 голосов
/ 19 марта 2020

Здравствуйте, я учусь Django и не могу передать данные из модели для просмотра. Я пытаюсь создать простой блог для изучения, но всегда, когда я отображаю представление, переменная присутствует, если я выполняю условие if, но когда я пытаюсь получить доступ к этой переменной - она ​​пишет. Вы забыли зарегистрировать или загрузить эту ошибку тега? ..

html:

{% if posts %}
    {% posts %}
{% else %}
    without posts
{% endif %}

models.py:

STATUS = (
    (0,"Draft"),
    (1,"Publish")
)


class Category(models.Model):
    name = models.CharField(max_length=200, unique=True)
    slug = models.SlugField(max_length=200, unique=True)
    active = models.BooleanField(default=False)
    img = models.ImageField()
    description = models.TextField()
    class Meta:
        ordering = ['-name']

    def __str__(self):
        return self.name


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')
    wide_img = models.ImageField()
    hide_img = models.ImageField()
    updated_on = models.DateTimeField(auto_now= True)
    content = models.TextField()
    created_on = models.DateTimeField(auto_now_add=True)
    status = models.IntegerField(choices=STATUS, default=0)
    category = models.ForeignKey(Category, on_delete= models.CASCADE)


    class Meta:
        ordering = ['-created_on']

    def __str__(self):
        return self.title

views.py

from blog.models import Post

def index(request):
    posts = Post.objects.filter(status=1).order_by('?')[:3]
    context = {
        "posts": "jaj",
    }
    template_name="index.html"
    return render(request, template_name, context)

1 Ответ

0 голосов
/ 19 марта 2020

Переменные отображаются с использованием двойных фигурных скобок, а не фигурных скобок +% (для тегов-шаблонов). IOW, вы хотите:

{% if posts %}
  {{ posts }}
{% else %}
   without posts
{% endif %}

Сообщение об ошибке могло быть подсказкой, так как предполагает, что оно не распознает {% posts %} как известный тег шаблона.

...