我知道这真的很简单,但我错过了一些东西。而且因为我永远不会记得这一点,所以我希望这可以在这里记录解决方案。
我想要做的就是为 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/