我有以django形式声明的以下函数:
def clean_name(self):
name = self.cleaned_data.get('name')
name = re.sub('\s+', ' ', name).strip().title()
return name
我对名称字段有一个唯一约束,如果验证命中,我希望在表单中修剪名称。
在Django中这样做的正确方法是什么?
由于
答案 0 :(得分:0)
所以我读了一些文章,最后我来到这个解决方案,覆盖了full_clean方法:
def full_clean(self):
cleaned_data = {}
for i,v in self.data.items():
if isinstance(v, basestring):
cleaned_data[i] = re.sub('\s+', ' ', v).strip()
else:
cleaned_data[i] = v
self.data = cleaned_data
super(MyForm, self).full_clean()
它有效,但对我来说它看起来有点脏,还有其他建议吗?