据推测,Django中的clean_方法旨在允许内联清理输入表单数据以及接受/拒绝提交。
鉴于模型
"FooBar"
是有效输入。是否有标准修复
之类的方法"FOOBAR"
"foo-bar"
"FooBar "
在验证之前有点模糊和一般化吗?
答案 0 :(得分:1)
好的,目前还不清楚你真正想要做些什么来改变,但这样的事情应该有效:
from re import sub
...
#in your form:
def clean_myfield(self):
data = self.cleaned_data['myfield']
#Strip special chars
data = sub("[\s_\-]","",a)
if b.lower() != "foobar":
raise forms.ValidationError("You have not specified foobar, you wicked boy!")
#Do whatever conversion to camelcase you want on data (this seemed very app specific to me)
return data
调用clean_field
检查的时间相当晚(例如在字段的清理方法之后),但只要您不尝试先执行验证检查,它就可以正常工作。
当然,如果你愿意的话,你也可以先进行camelcase转换,然后进行相等检查,这真的不重要。
答案 1 :(得分:1)
如果你需要从ALLCAPS转到CapCase,简短的回答是否定的。
你的系统如何知道Aaaaaaaaaa应该被资本化AaaaAaaaAa?