Передача нескольких аргументов из ссылки на шаблон django для просмотра - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь передать некоторые аргументы с URL-адресом ссылки в шаблоне в представление.

В моем шаблоне:

<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 дано)

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Вы неверно передаете свой 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'
)
0 голосов
/ 24 октября 2018

Это , а не , как вы указываете несколько параметров в 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 [Джанго-док] .

...