使用基于类的通用视图和带有FK(作者)的Book模型,我只能返回所有书籍或ID固定值的书籍。
使用python shell,我可以检索所需的值,例如
b.all().filter(author=6)
>>> <QuerySet [<Book: bookA>, <Book: bookB]>
但是,我似乎无法使用上下文通过GCBV进行翻译。下面,在下面的查询中,如何告诉它进行过滤(无论该页面的作者ID值是什么?即用固定值代替动态值。
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
每个作者页面应显示所有相关书籍。我见过的所有示例都没有使用ID,而是名称。还是基于功能的视图。如果那是唯一的方法,我可以使用FBV,但我想知道如何在两者中使用它,因此我从GCBV开始。
谢谢!
答案 0 :(得分:0)
您根本不这样做。您可以在模板中使用反向关系:
{% for book in author.book_set.all %}