大写字母和自动修剪的Django模型表单字段选项

时间:2012-02-03 04:34:08

标签: python django

表单字段是否有任何选项,以便任何输入都应自动转换为大写字母并在开头和结尾处从空格中修剪?

如果没有,执行上述选项的最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

您可以覆盖clean方法。

class MyForm(forms.Form):
    def clean(self):
         return dict([(k, v.strip().upper()) for k, v in self.cleaned_data.items()])

请注意,这将运行/之后/单个字段验证。

防止日期错误

def clean(self):
     result = {}
     for k, v in self.cleaned_data.items():
         try:
             result[k] = v.strip().upper()
         except AttributeError:
             result[k] = v
     return result     

您还可以检查该值是否为isinstance(value, basestring)并且仅对这些值进行操作。