Skip to main content
 首页 » 编程设计

python之django请求getlist方法: does this preserve the sequence of my posted parameters

2024年10月24日35fff_TT

我正在发布一系列图像文件和每个图像的相应描述。所以骨架 html 表单部分:

<div class="form-group"> 
    <input type="file" name="image"> 
    <input type="file" name="description"> 
</div> 
<div class="form-group"> 
    <input type="file" name="image"> 
    <input type="file" name="description"> 
</div> 
<div class="form-group"> 
    <input type="file" name="image"> 
    <input type="file" name="description"> 
</div> 

我的服务器是 Django 1.6.11,我想使用 Django 的 getlist 获取 image 参数和 description 参数。所以我想确保我得到的两个列表 --image_list 和 description_list 确实匹配,这意味着 image_list[0] 确实匹配description_list[0]、image_list[1] 确实与 description_list[1] 和 image_list[2] 匹配与 description_list[2] 匹配。

根据我在Chrome和Django 1.6.11测试时看到的情况,似乎可以保证对应关系。但是,我不确定这是否一直适用。

请您参考如下方法:

我认为您不应该依赖 getlist 的序列.相反,您应该为每个 <input> 赋予不同的名称:

<div class="form-group"> 
    <input type="file" name="image0"> 
    <input type="file" name="description0"> 
</div> 
<div class="form-group"> 
    <input type="file" name="image1"> 
    <input type="file" name="description1"> 
</div> 
<div class="form-group"> 
    <input type="file" name="image2"> 
    <input type="file" name="description2"> 
</div> 

然后在您的 View 中您可以:

for i in range(0, 3): 
    file = request.POST['image%s' % i] 
    description = request.POST['description%s' % i] 
    # other operations