【问题标题】:Django detailview filter by other fields like isbnDjango detailview 按其他字段(如 isbn)过滤
【发布时间】:2020-06-01 23:52:05
【问题描述】:

如果我在书中有另一个字段,如 ISBN,那么如何从 django.views.generic import DetailField

过滤这个字段

这是我的书/urls.py 文件代码

urlpatterns = [
    path('',BookListView.as_view(), name="book_list"),
    path('<isbn>/',BookDetailView.as_view(), name="book_detail")
]

book/views.py

class BookDetailView(DetailView):
    template_name = "book/detail.html"
    def get_queryset(self,*args, **kwargs):
        print(self.kwargs['isbn'])
        return BookModel.objects.filter(isbn=self.kwargs['isbn'])

错误是

必须使用对象 pk 或 URLconf 中的 slug 调用通用详细视图 BookDetailView。

【问题讨论】:

    标签: python django detailview


    【解决方案1】:

    你可以使用 isbn 作为 slug

    书/urls.py

    urlpatterns = [
        path('',BookListView.as_view(), name="book_list"),
        path('<slug:isbn>/',BookDetailView.as_view(), name="book_detail")
    ]
    

    book/views.py

    class BookDetailView(DetailView):
        model = BookModel
        template_name = "book/detail.html"
        slug_field = 'isbn'
        slug_url_kwarg = 'isbn'
    

    【讨论】:

      猜你喜欢
      • 2020-07-29
      • 2012-12-15
      • 2016-06-15
      • 2021-11-03
      • 1970-01-01
      • 2012-03-13
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      相关资源
      最近更新 更多