Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PostCreateView返回由PostDetailView引发的页面错误404_Python_Django_Django Class Based Views - Fatal编程技术网

Python PostCreateView返回由PostDetailView引发的页面错误404

Python PostCreateView返回由PostDetailView引发的页面错误404,python,django,django-class-based-views,Python,Django,Django Class Based Views,我试图在Django项目中添加一个CreateView,但由于某种原因,我不明白为什么会出现PostDetailView引发的404页错误。我假设这是因为url模式,但我已经修改了好几次,但仍然卡住了 以下是全部错误: Page not found (404) Request Method: GET Request URL: http://127.0.0.1:8000/score/new_design/ Raised by: score.views.PostDetailView 这是模

我试图在Django项目中添加一个
CreateView
,但由于某种原因,我不明白为什么会出现
PostDetailView
引发的404页错误。我假设这是因为url模式,但我已经修改了好几次,但仍然卡住了

以下是全部错误:

Page not found (404)
Request Method: GET
Request URL:    http://127.0.0.1:8000/score/new_design/
Raised by:  score.views.PostDetailView
这是模型

class Post(models.Model):
    title = models.CharField(max_length=100, unique=True)
    design = models.ImageField(blank=False, null=True, upload_to=upload_design_to)
这是view.py

class PostCreateView(LoginRequiredMixin, SuccessMessageMixin, CreateView):
    model = Post
    fields = ['title', 'design']  
    success_url = '/'
    template_name = 'score/post_form.html'  # <app>/<model>_<viewtype>.html
    success_message = "Your Post has been submitted"

    def form_valid(self, form):
        form.instance.designer = self.request.user
        return super().form_valid(form)
class PostCreateView(LoginRequiredMixin、SuccessMessageMaxin、CreateView):
型号=员额
字段=['title','design']
成功_url='/'
模板名称='score/post_form.html'#

您可以尝试将创建url移动到细节上方,如下所示:

urlpatterns = [
     path('', PostListView.as_view(), name='score'),
     path('new_design/', PostCreateView.as_view(), name='post-create'),
     path('<slug:slug>/', PostDetailView.as_view(), name='post-detail'),
urlpatterns = [
    path('', PostListView.as_view(), name='score'),
    path('detail/<slug:slug>/', PostDetailView.as_view(), name='post-detail'),
    path('new_design/', PostCreateView.as_view(), name='post-create'),
urlpatterns=[
路径(“”,PostListView.as_view(),name='score'),
路径('new_design/',postreateview.as_view(),name='post-create'),
路径('/',PostDetailView.as_view(),name='post-detail'),
这允许首先找到createview。或者您可以尝试如下方式编辑详细url:

urlpatterns = [
     path('', PostListView.as_view(), name='score'),
     path('new_design/', PostCreateView.as_view(), name='post-create'),
     path('<slug:slug>/', PostDetailView.as_view(), name='post-detail'),
urlpatterns = [
    path('', PostListView.as_view(), name='score'),
    path('detail/<slug:slug>/', PostDetailView.as_view(), name='post-detail'),
    path('new_design/', PostCreateView.as_view(), name='post-create'),
urlpatterns=[
路径(“”,PostListView.as_view(),name='score'),
路径('detail/',PostDetailView.as_view(),name='post-detail'),
路径('new_design/',postreateview.as_view(),name='post-create'),
问题是,由于detailview首先出现,它正在搜索要匹配的有效段塞,但由于找不到,因此出错