为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Django 中对 URL 进行排序?由于网址放错位置,我收到“找不到页面”错误?

如何在 Django 中对 URL 进行排序?由于网址放错位置,我收到“找不到页面”错误?

绝地无双 2023-10-11 15:47:41
当我想添加项目或转到project_createURL 时,出现以下错误。Page not found (404)Request Method: GETRequest URL:    http://localhost:8000/project/add/Raised by:  projects.views.project_detail_viewURL 表示/project/add/根据视图它必须打开project_create_view,但错误是由详细视图引发的projects.views.project_detail_view。这是网址:path('project/<slug:project_slug>/delete/',     project_delete_view, name='project_delete'),path('project/<slug:project_slug>/update/',     project_update_view, name='project_update'),path('project/<slug:project_slug>/',     project_detail_view, name='project_detail'),path('projects/list/', all_projects_view, name='all_projects'),path('project/add/', project_create_view, name='project_create'),path('administration/', administration, name='administration'),path("", home, name='home'),如果我评论这一行,path('project/<slug:project_slug>/',project_detail_view, name='project_detail'),则project_createURL 将转到右侧视图和右侧模板。为什么会发生这种情况?我使用了不同的name,url和view名称。为什么会发生这种情况?编辑:我添加了两个视图@login_requireddef project_create_view(request):    if not request.user.is_superuser:        raise PermissionDenied    if request.method == 'POST':        form = ProjectForm(request.POST, request.FILES)        if form.is_valid():            title = form.instance.title            form.save()            project = get_object_or_404(Project, title=title)            messages.success(request, 'Project created successfully.')            return redirect(project.get_absolute_url())    form = ProjectForm()    return render(request, 'projects/project_create.html', {'form': form})def project_detail_view(request, project_slug):    project = get_object_or_404(Project, slug=project_slug)    session_key = 'project_views{}'.format(project.slug)    if not request.session.get(session_key, False):        Project.objects.filter(id=project.pk).update(            visit_count=F('visit_count') + 1        )        request.session[session_key] = True    context = {        'project': project    }    return render(request, 'projects/project_detail.html', context)
查看完整描述

2 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

动态 URL 必须位于列表底部,


urlpatterns = [

                  # Fixed URLs

                  path("", home, name='home'),

                  path('administration/', administration, name='administration'),

                  path('project/add/', project_create_view, name='project_create'),

                  path('projects/list/', all_projects_view, name='all_projects'),

    

                  # Dynamic URLs

                  path('project/<slug:project_slug>/',

                       project_detail_view, name='project_detail'),

                  path('project/<slug:project_slug>/delete/',

                       project_delete_view, name='project_delete'),

                  path('project/<slug:project_slug>/update/',

                       project_update_view, name='project_update'),


              ] 

查看完整回答
反对 回复 2023-10-11
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

您可以按应用程序或路径排序,例如,如果您有多个以 开头的,project您可以将它们分组到不同的 url 模式列表中。


projecturls =[

    # your project path urls

]


urlpatterns =[

    path('project/', include(projecturls)),

    # ...

]


查看完整回答
反对 回复 2023-10-11
  • 2 回答
  • 0 关注
  • 55 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信