python-3.x - 多参数 url 模式 django 2.0

标签 python-3.x django-urls django-2.0

我想在我的 url 模式中传递两个参数,但我收到错误无反向匹配,即“项目”。虽然它只有一个参数可以正常工作。

这是主要的网址文件-

urlpatterns = [
    path('admin/', admin.site.urls),
    path(r'^materials/(?P<name>(\s+)/',include('materials.urls')),
    path(r'^projects/',include('projects.urls')),
]

项目.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'),
] 

View .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 %}"

最佳答案

您可以执行以下操作。

Old Way
(r'^view_url/(\d+)/(\d+)$', r'app_name.views.view_function'),
def view_function(request, param1, param2):
    """
    :param request:
    :param param1:
    :param param2:
    :return:
    """
    return render('/* template path and parameters */')

New Way
(r'^view_url/<int:param1>/<int:param2>$', r'app_name.views.view_function'),
def view_function(request, param1, param2):
    """
    :param request:
    :param param1:
    :param param2:
    :return:
    """
    return render('/* template path and parameters */')

有关 django 2.0 中正则表达式模式的更多详细信息,您可以查看 django 文档链接。
https://docs.djangoproject.com/en/2.1/topics/http/urls/

关于python-3.x - 多参数 url 模式 django 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51464131/

相关文章:

python - 即使我使用opencv-contrib-python更新了opencv之后,我仍然遇到属性错误

python - Django 错误 "Reverse for ' x' 未找到。 'x' 不是有效的 View 函数或模式名称。”,但 x 是模式名称

python - 从字典创建列表

python - 简单的 Django 项目结构

python - perisan 404 中的 Django slug url

python - Django Url 未使用查询参数解析

python - 如何修复 "AttributeError at/api/doc ' AutoSchema' 对象在 Django 中没有属性 'get_link'"错误

python - 分组依据和计数值

python - 如何将 repr 转换为编码字符串

python - 在 Python 中测试密码的强度