簡體   English   中英

從 django 模板 href 鏈接傳遞多個參數以查看

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM