首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django通用DetailView

django通用DetailView
EN

Stack Overflow用户
提问于 2015-12-26 22:47:49
回答 1查看 1.5K关注 0票数 1

django是新手,非常喜欢简单地完成任务。但是,当我得到一个405错误声明方法时,在呈现一个通用DetailView时有问题,所以不支持。下面是我的密码。

代码语言:javascript
复制
from django.shortcuts import render, get_object_or_404, get_list_or_404
from django.views.generic import View, ListView, DetailView
from store.managers import StoreManager
from .models import Store

# Create your views here.
class StoreDetails(DetailView):
    model = Store
    template_name = 'store/details.html'

class StoreIndex(ListView):
    model = Store
    template_name = 'store/index.html'
    context_object_name = 'stores'
# url 
urlpatterns = [
url(r'^view/([0-9]+)/$', StoreDetails.as_view(), name='details'),
url(r'^index/$', StoreIndex.as_view(), name='index'),
]

虽然我的StoreIndex视图工作得很好,但是我的StoreDetails视图出现了一个错误。尝试重写get_context_data函数,但结果相同。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-26 23:55:20

问题在于url模式。DetailView需要主键才能找到要显示的正确对象,但是模式r'^view/([0-9]+)/$'没有指定匹配的数字作为主键。试试r'^view/(?P<pk>[0-9]+)/$' (pk代表主键)。

还请参阅DetailView doocs上的示例(它提供slug而不是pk)。自定义get_context_data对于pkslug来说不应该是必需的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34475979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档