如果表单在 django for 循环中,如何检索 html 表单的输入值

Swa*_*gat 3 python forms django

我有一个情况。我有一个 django 模板 ip_form.html 给出了波纹管。

<form method = "GET">
  {% for val in value_list %}
    <input type='text' value = '{{ val }}'> {{ val }}</input>
  {% endfor %}
</form>
Run Code Online (Sandbox Code Playgroud)

我想告诉你,我不知道 value_list 中的 val 数(可能为零)。所以可能不使用 django form.py(而且我在特定视图函数的特定时间获得了价值,即不知道它会一直发生)

让我们在 views.py 中说

def view1(request):
 value_list = [1,2,3,4,5] # it will change every time view1 will get request
 if request.method == "GET":
    # i want to retrieve here post
 return render ('ip_form.html','value_list':value_list)
Run Code Online (Sandbox Code Playgroud)

我如何使用 form.py

那我怎样才能找回它。你可以参考我post方法。(它不是敏感数据,所以get方法没问题)

谢谢。

Lud*_*mer 5

您需要向name输入添加一个属性,然后您可以使用此名称来检索值列表,使用Django QueryDictgetlist方法

HTML:

<form method="POST">
  {% for val in value_list %}
    <input type='text' value='{{ val }}' name='my_list'>{{ val }}</input>
  {% endfor %}
</form>
Run Code Online (Sandbox Code Playgroud)

看法:

def view1(request):
    value_list = [1,2,3,4,5] # it will change every time view1 will get request
    if request.method == "POST":
        values_from_user = request.POST.getlist('my_list')
    return render ('ip_form.html', 'value_list': value_list)
Run Code Online (Sandbox Code Playgroud)

values_from_user将是您表单中的输入值列表(如果表单具有零个input元素,则为空列表)。

请注意,我将您的表单方法更改为POST,否则request.method您认为的测试将毫无意义。