从 django 模板 href link 传递多个参数以查看
Passing multiple arguments from django template href link to view
我正在尝试将模板中带有 link url href 的一些参数传递给视图。
在我的模板中:
<a href="/print-permission-document/ studentname={{studentinfo.0}} studentsurname={{studentinfo.1}} studentclass={{studentinfo.2}} doctype=doctype-studentlatepermission">Print</a>
所以我试图将 4 个参数传递给我的视图。
我的观点是:
def print_permission_document(request, studentname, studentsurname, studentclass, doctype):
file_write(studentname.encode('utf-8')+" "+studentsurname.encode('utf-8')+" "+studentclass+" "+doctype)
return response
我的 urls.py 是:
url(r'^print-permission-document/.+$', print_permission_document, name='print-permission-document')
但我得到以下错误:
异常类型:TypeError
异常值:
print_permission_document() 恰好接受 5 个参数(给定 1 个)
这是 而不是 在 URL 中指定多个参数的方式,通常是在 URL 中编写这些参数,例如:
url(
r'^print-permission-document/(?P<studentname>\w+)/(?P<studentsurname>\w+)/(?P<studentclass>\w+)/(?P<doctype>[\w-]+)/$',
print_permission_document, name='print-permission-document'
)
然后你生成相应的URL:
<a href="{% url 'print-permission-document' studentname=studentinfo.0 studentsurname=studentinfo.1 studentclass=studentinfo.2 doctype='doctype-studentlatepermission' %}">Print</a>
这将生成一个 URL,如下所示:
/print-permission-document/somename/someclass/doctype-studentlatepermission
通常情况下,路径 不 包含键值对,如果包含,您需要自己 "decode" 这些键值对。
你也可以生成一个querystring(在问号之后),然后你可以在request.GET
[Django-doc].
中访问这些
您传递的 URL 有误。模板中的 URL 也声明错误。
试试这个
<a href="{% url 'print-permission-document' studentinfo1, studentinfo2, ... %}">Print</a>
url(
r'^print-permission-document/(?P<studentname>\w+)/(?P<studentsurname>\w+)/(?P<studentclass>\w+)/(?P<doctype>\w+)/$',
print_permission_document, name='print-permission-document'
)
我有同样的错误,我更正了它:
url(r'^auth_app/remove_user/(?P<username2>[-\w]+)/$', views.remove_user, name="remove_user"),
使用此模式传递字符串
(?P<username2>[-\w]+)
这是整数值
(?P<user_id>[0-9]+)
我正在尝试将模板中带有 link url href 的一些参数传递给视图。
在我的模板中:
<a href="/print-permission-document/ studentname={{studentinfo.0}} studentsurname={{studentinfo.1}} studentclass={{studentinfo.2}} doctype=doctype-studentlatepermission">Print</a>
所以我试图将 4 个参数传递给我的视图。
我的观点是:
def print_permission_document(request, studentname, studentsurname, studentclass, doctype):
file_write(studentname.encode('utf-8')+" "+studentsurname.encode('utf-8')+" "+studentclass+" "+doctype)
return response
我的 urls.py 是:
url(r'^print-permission-document/.+$', print_permission_document, name='print-permission-document')
但我得到以下错误:
异常类型:TypeError
异常值:
print_permission_document() 恰好接受 5 个参数(给定 1 个)
这是 而不是 在 URL 中指定多个参数的方式,通常是在 URL 中编写这些参数,例如:
url(
r'^print-permission-document/(?P<studentname>\w+)/(?P<studentsurname>\w+)/(?P<studentclass>\w+)/(?P<doctype>[\w-]+)/$',
print_permission_document, name='print-permission-document'
)
然后你生成相应的URL:
<a href="{% url 'print-permission-document' studentname=studentinfo.0 studentsurname=studentinfo.1 studentclass=studentinfo.2 doctype='doctype-studentlatepermission' %}">Print</a>
这将生成一个 URL,如下所示:
/print-permission-document/somename/someclass/doctype-studentlatepermission
通常情况下,路径 不 包含键值对,如果包含,您需要自己 "decode" 这些键值对。
你也可以生成一个querystring(在问号之后),然后你可以在request.GET
[Django-doc].
您传递的 URL 有误。模板中的 URL 也声明错误。
试试这个
<a href="{% url 'print-permission-document' studentinfo1, studentinfo2, ... %}">Print</a>
url(
r'^print-permission-document/(?P<studentname>\w+)/(?P<studentsurname>\w+)/(?P<studentclass>\w+)/(?P<doctype>\w+)/$',
print_permission_document, name='print-permission-document'
)
我有同样的错误,我更正了它:
url(r'^auth_app/remove_user/(?P<username2>[-\w]+)/$', views.remove_user, name="remove_user"),
使用此模式传递字符串
(?P<username2>[-\w]+)
这是整数值
(?P<user_id>[0-9]+)