Django使用POST访问数组中返回的值[重复]

bwitn5fc  于 2023-01-06  发布在  Go
关注(0)|答案(1)|浏览(111)
    • 此问题在此处已有答案**:

how to obtain all values of a multi-valued key from Django's request.GET QueryDict(8个答案)
2天前关闭。
我尝试返回表单数据作为一个数组,我的html看起来像这样:

{% for f in factures %}
            <tbody>
                <td>{{ f.numero }}</td>
                <td>{{ f.date}}</td>
                <td>{{ f.sommeRestante }}</td>
                <td><input type="number" name="valeur[]" value=0></td>
            </tbody>
  {% endfor %}

在我看来,当我执行print(request.POST)时,我得到:
<QueryDict: {'csrfmiddlewaretoken':[...], 'valeur[]': ['100', '0']}>
我如何访问值'100'和'0'?
我尝试了request.POST['valeur[]'][0],但它返回了0(它返回了html中设置的默认值)

    • 编辑:**在我看来,我做得不多:
def sauv_reg(request, pk):
    if request.method == "POST":
        print(request.POST['valeur[]'][0])
        redirect("home")
    • 编辑2:**

print(request.POST['valeur[]'])返回POST中的第二个索引,因此为0

ar7v8xwq

ar7v8xwq1#

在视图中,当形式正确时,您必须访问cleaned_data,例如:

def your_view(request):
    if request.method == 'POST':
        form = YourForm(request.POST)
        if form.is_valid():
            valeur = form.cleaned_data['valeur[]']
...

为此你需要创建一个django表单,我推荐它作为最佳实践和清晰度。

相关问题