Django:模板{%url%}标签,如何从表单传递参数

时间:2014-06-16 17:17:42

标签: python django forms templates button

有模板:

<form action="{% url 'nfoapp.views.kinoscrap' <I WANT MOVIE_ID THERE> selectshort.id %}" method="post">
<input type="text" class="form-control" name="MOVIE_ID">
<button type="submit" class="btn btn-danger">Kinopoisk Search by ID</button>
</form>

有我的urls.py:

(r'^kinoscrap/(?P<kinoid>\d+)/(?P<shortid>\d+)/$', kinoscrap),

我希望传递给kinoscrap两个参数 - 来自表单的文本字段(MOVIE_ID)和'choiceshort.id'变量。问题是我不能把简单的MOVIE_ID放在模板的第一行,我得到了错误。但是,当我尝试将MOVIE_ID替换为其他变量时,例如selectshort.id,编程工作没有错误。

如何传输文本字段值以进行查看?

p.s我使用bootstrap,如果它有一些重要性。

2 个答案:

答案 0 :(得分:1)

您可以将表单操作设置为空,因此对于同一视图,然后使用表单中的POST数据在视图重定向中。

<form action="" method="post">
<input type="text" class="form-control" name="MOVIE_ID">
<button type="submit" class="btn btn-danger">Kinopoisk Search by ID</button>
</form>

然后在视图中

def searchView(request):
    if request.method == 'POST':
        # get variables from form and redirect
    else:
        # do your normal rendering

答案 1 :(得分:0)

(r'^kinoscrap/(?P<kinoid>\d+)/(?P<shortid>\d+)/$', kinoscrap),

您的urls.py接受网址中的整数值(类似kinnoscrap/12/21),如果您在整数旁边传递任何内容,则会抛出错误。如果要传递文本字段,则必须更改正则表达式。

regex101处试试你的正则表达式,看看它们是否有效。

相关问题