Джанго - Получение значений из модели - PullRequest
0 голосов
/ 04 мая 2018

Я хочу получить сообщение type value в моем шаблоне .html из Model OUTSIDE loop. Я могу получить значение внутри цикла.
Моя модель выглядит так:
models.py:

class Post(models.Model):
    TYPE = ( ("test", "test"), )
    ...
    type = models.CharField(max_length=13, choices=TYPE, default="")


views.py:

def post_type(request, type):
    posts = Post.objects.filter(type=type)
    return render(request, 'blog/post_type.html', {'posts': posts})


.html:

{% block some_block %}

    {{ posts.type}} # DOES NOT WORK - (Getting QuerySet[] only, but cannot call to {{posts.type}} or, let's say, {{ post.type[0] }} to just get that type.

    {% for post in posts %}
        {{ post.type }} # This works fine in Loop, cos Im inside set... (I can call even to post.title if defined in Model)
    {% endfor %}

{% endblock %}


:(

----- Редактировать: ----
{{posts.0.type}} решает проблему

Ответы [ 3 ]

0 голосов
/ 04 мая 2018

Попробуйте использовать это в шаблоне

{{ posts.0.type }}
0 голосов
/ 04 мая 2018

{{posts.0.type}} тоже работает, спасибо

0 голосов
/ 04 мая 2018

Это происходит потому, что:
posts = Post.objects.filter(type=type) - возвращает QuerySet, а не экземпляр Post.
Вы можете попробовать:
post1 = Post.objects.filter(type=type)[0] - чтобы получить значение type от 1-го Post.

...