我想在我的url模式中传递两个参数,但是我得到了错误的非反向匹配,即'项目'。虽然它只使用一个参数工作得很好。
这是主网址文件-
urlpatterns = [
path('admin/', admin.site.urls),
path(r'^materials/(?P<name>(\s+)/',include('materials.urls')),
path(r'^projects/',include('projects.urls')),
]
projects.urls-
urlpatterns = [
path('',views.view_projects,name='view_projects'),
path('(?<projectid>\d+)/',views.project_steps,name='project_steps'),
path('(P<projectid>\d+)/(P<stepid>\d+)/',views.project_steps,
name='project_steps'),
]
views.py-
def view_projects(request):
projects = project.objects.all
return render(request,'projects/project_view.html',
{'projects':projects})
def project_steps(request,projectid,stepno=1):
projects = project.objects.all
stepss = steps.objects.all
return render(request,'projects/project_steps.html',
{'projectid':projectid,'steps':stepss,'projects':projects,
'stepno':stepno})
模板-
"{% url 'projects' projectid=project.id stepno=step.step_no %}"
4条答案
按热度按时间h22fl7wq1#
不需要正则表达式匹配或额外的模型字段来使其工作。
第一个月
views.py
custom_page.html
olqngx592#
你可以做一些如下。
更多关于django2.0正则表达式模式的细节,你可以查看django文档链接。https://docs.djangoproject.com/en/2.1/topics/http/urls/
wmtdaxz33#
你可以更容易地做你想做的事情 (没有正则表达式),就像这样。你可以找到documentation details here。
上面的urlpattern函数看起来像这样:
请记住,您需要一个
Project
模型才能正常工作,其中包含数据。你的模板应该是这样的:
k97glaaz4#
我也有一个类似的实现,希望能对大家有所帮助。
Django模板(html文件)
应用程序URL文件
视图文件