我知道这真的很简单,但我错过了一些东西。而且因为我永远不会记得这一点,所以我希望这可以在这里记录解决方案。

我想要做的就是为 URL 中的对象传递一个 PK 并返回详细信息 View 。

网址:

    url(regex=r'^(?P<pk>\d+)/$',
    view=AdventureDetail.as_view(),
    name='adventure_detail',
),

看法:
class AdventureDetail(DetailView):
""" Get a time entry detail view """

    template_name = "adventure/AdventureDetail.html"

    def get_object(self):
        return get_object_or_404(Page)

但我收到“多个对象返回错误”



这感觉真的很傻。它应该“正常工作”,但我遗漏了一些明显的东西。

谢谢您的帮助。

最佳答案

在 DetailView 中它更简单:您可以指定模型:

class AdventureDetail(DetailView):
""" Get a time entry detail view """

    model = Page
    template_name = "adventure/AdventureDetail.html"

就这样。 DetailView 将完成剩下的工作。

另一种方法是指定查询集:
class AdventureDetail(DetailView):
""" Get a time entry detail view """

    queryset = Page.objects.all()
    template_name = "adventure/AdventureDetail.html"

这将产生相同的结果。

最后一种方法是覆盖 get_object 方法。

查看 here 了解详情

关于django - 使用基于通用类的 View 编写 Django 详细信息 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16268368/

10-12 16:55