You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django表单中输入数据并提交为Python列表格式

可以实现,共有两种常用处理方式
  • 方案1:在表单的clean方法中预处理(符合Django表单设计规范,更推荐)
    重写字段对应的clean方法,即可在校验阶段直接将提交的字符串转为列表,后续从cleaned_data中直接取值就能得到Python列表格式的结果。示例代码如下:
from django import forms

class CreateForm(forms.Form):
    # 注意不要用list作为字段名,会和Python内置list类型冲突,这里改为name_list示例
    name_list = forms.CharField(label='输入姓名(以逗号分隔):')

    def clean_name_list(self):
        # 拿到原始提交的字符串
        raw_data = self.cleaned_data['name_list']
        # 可选:如果需要兼容中文逗号,先替换为英文逗号
        raw_data = raw_data.replace(',', ',')
        # 分割字符串,同时去除每个元素前后空格,过滤空值
        result_list = [item.strip() for item in raw_data.split(',') if item.strip()]
        return result_list

在视图中使用时,表单校验通过后直接取值即可:

if form.is_valid():
    # 拿到的直接是处理好的列表
    name_list = form.cleaned_data['name_list']
  • 方案2:在视图中手动处理
    如果不需要修改原有表单代码,也可以在视图层手动分割字符串得到列表,示例代码如下:
if request.method == 'POST':
    form = CreateForm(request.POST)
    if form.is_valid():
        raw_str = form.cleaned_data['list']
        # 手动处理为列表
        name_list = [item.strip() for item in raw_str.replace(',', ',').split(',') if item.strip()]
        # 后续直接使用name_list即可

内容的提问来源于stack exchange,提问作者project.py

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 03:39:01