Python Django形式的带空间

Python Django形式的带空间,python,django,Python,Django,我通过邮寄请求获得表格: form = ReportDataForm2(req.POST) 我试图通过以下方式从所有字段中删除空格: for element in form: form[element] = form[element].strip() 但这似乎没有任何作用 我还尝试在接收数据时剥离: id = form.cleaned_data['id'].strip() 也不行 我是Django的新手,所以不知道表单是如何处理的 这个怎么样: 您

我通过邮寄请求获得表格:

form = ReportDataForm2(req.POST)
我试图通过以下方式从所有字段中删除空格:

for element in form:
      form[element] = form[element].strip()   
但这似乎没有任何作用

我还尝试在接收数据时剥离:

            id = form.cleaned_data['id'].strip()
也不行

我是Django的新手,所以不知道表单是如何处理的

这个怎么样: 您可以扩展CharField类,创建自己的字段,并随时使用该字段

class StrippedCharField(CharField):
     """Newforms CharField that strips trailing and leading spaces."""
     def clean(self, value):
         if value is not None:
             value = value.strip()
         return super(StrippedCharField, self).clean(value)
关于表单数据剥离是否应该由Django处理,已经有很长时间的讨论。最近的线程是实际线程


我还没有在自己上面测试过代码

验证表单字段的一个好地方是
clean\(
方法)
是要验证的字段的名称。例如,如果要验证名为
name
的字段,将定义一个
clean_name()
方法对其进行验证

一个详细的例子:

class MyForm(forms.Form):
    text = forms.CharField(...)
    ...

    def clean_text(self):
        stripped_text = self.cleaned_data['text'].strip()
        # do some other validation if you want...
        return stripped_text
除了剥离,您还可以在那里进行各种验证


.

为什么需要剥离数据<代码>表单。已清理的\u数据['start\u date']可能是一个
datetime
对象,不会有剥离方法?我正在另一个字段上剥离。不是日期字段。我在文本字段中添加了strip方法,但没有起作用。您能提供调用strip不起作用的数据吗?在Django 1.9中,您可以通过CharField构造函数中的strip-kwarg免费获得这些数据