Задать вопрос
@Peterson_s

Как отправить информацию из queryset в шаблон?

Мне нужно вернуть список книжек одного автора. Я использую метод get чтобы взять информацию из бд.
views.py
class AuthorDetailView(generic.DetailView):
    
    model = Author
    
    template_name = 'catalog/author_detail.html'
    def get(self, request, pk):
        queryset = Book.objects.all().filter(author=pk).values('title', 'summary')
        
        
        return render(request, self.template_name, context={'queryset':queryset})

Мне приходит вот такой ответ:
<QuerySet [{'title': 'Programing c++', 'summary': 'about c++'}]>


Как убать queryset или как можна по нормальному вытащить информацию из бд используя этот клас AuthorDetailView, чтобы потом использовать в шаблоне эти данные.
Ps. Я только учусь
  • Вопрос задан
  • 794 просмотра
Подписаться 1 Простой 2 комментария
Решения вопроса 2
@SKY_nv
{% for book in queryset %}
<p>Название: {{ book.title }}</p>
<p>Описание: {{ book.summary }}</p>
{% endfor %}

А вообще нужно открыть документацию на главе ШАБЛОНЫ.
Ответ написан
Комментировать
@buslay
SKY_nv правильно подсказал на счет шаблона, но во View контекст шаблона лучше готовить в специально методе:

class AuthorDetailView(DetailView):
    model = Author
    template_name = 'catalog/author_detail.html'

    def get_context_data(self, **kwargs):
        context = super(AuthorDetailView, self).get_context_data(**kwargs)
        context['author_books'] = Book.objects.filter(author=pk).values('title', 'summary')
        return context


В контекст шаблона будут добавлены два объекта:
1. object, т.к. это DetailView и обжект будет получен по ID из урла
2. author_books, который используется как указал выше SKY_nv
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dooMoob
Проитерироваться по qs в шаблоне
Ответ написан
Ваш ответ на вопрос

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

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