Невозможно получить GCBV с контекстом для отображения книг автора, если я не установил значение pk как фиксированное - PullRequest
0 голосов
/ 30 января 2019

Используя общий вид на основе классов и модель книги с FK (автор), я могу вернуть только все книги или книги с фиксированным идентификатором.

Используя оболочку python, я могу получить значение Iпотребность, например,

b.all().filter(author=6)
>>> <QuerySet [<Book: bookA>, <Book: bookB]>

Однако я не могу перевести это через GCBV, используя контекст.Ниже, на запросе ниже, как я могу сказать ему фильтровать (для любого значения идентификатора автора этой страницы? Т.е. заменить фиксированное значение на динамическое.

Views.py

class AuthorDetailView(LoginRequiredMixin, generic.DetailView):

      context_object_name = 'author'
      queryset = Author.objects.all()

      def get_context_data(self, **kwargs):
        # call the base implementation first to get a context
        context = super().get_context_data(**kwargs)
        # add Queryset of All books
        context['book_list'] = Book.objects.filter(author=4)
        return context

На каждой странице автора должны быть показаны все связанные книги. Все примеры, которые я видел, не используют вместо этого идентификатор, имя. Или это представление на основе функций. Я хорошо использую FBV, если это единственный способ, но яЯ хотел бы знать, как использовать его в обоих случаях, поэтому я начал с GCBV.

Спасибо!

1 Ответ

0 голосов
/ 30 января 2019

Ты вообще этого не делаешь.Вы используете обратную связь в шаблоне:

 {% for book in author.book_set.all %}
...