[英]Passing multiple arguments from django template href link to view
我試圖將模板中帶有鏈接 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
通常,路徑不包含鍵值對的,如果是的話,你將需要“解碼”這些你自己。
您還可以生成一個查詢字符串(在問號之后),然后您可以在request.GET
[Django-doc] 中訪問這些字符串。
您錯誤地傳遞了您的網址。 並且模板中的 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]+)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.