@bwylla

Как отобразить элемент объекта?

class Product(models.Model):
    title = models.CharField(max_length=200)
    text = models.TextField(blank=True)
    created_date = models.DateTimeField(default=timezone.now)
    published_date = models.DateTimeField(blank=True, null=True)

    def __str__(self):
        return self.title

def product_list(request):
    products = Product.objects.all()
    return render(request, 'shop/product/list.html', {'products': products})

{% block content %}
<p>{{ products }}</p>
{% endblock %}

На выходе получается <QuerySet [<Product: Coffee>]>, если в шаблоне написать products.title, то вообще ничего не отображается
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ответы на вопрос 1
{'products': products}
- это контекст, а в нём много объектов, так как вы вытащили всё из БД. Обращаясь напрямую к {{ products }} вы не получите ответа на конкретный элемент. Нужно всё перебрать циклом.
{% for some in products %}
    {{ some.title }}
    {{ some.text }}
    {{ some.created_date }}
    {{ some.published_date }}
{% empty %}
    <p>Нет данных</p>
{% endfor }%
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы