我正在尝试在Django上进行一些自定义表单验证,但它目前还没有工作。
class PostCodeForm (forms.Form):
pcode = forms.CharField()
def clean_pcode(self):
permitted = {'a','b','c','d'}
pcode = self.cleaned_data['pcode']
if not str(permitted) in pcode:
raise forms.ValidationError("Apologies, but surrey Spice does not currently deliver to you postcode.")
return pcode
最终目标是不应该允许任何不在该元组中的内容,并且应该返回验证错误。任何帮助都非常感谢。
答案 0 :(得分:0)
你的比较是倒退的。
您正在检查permitted in pcode
,但您需要pcode in permitted
。
答案 1 :(得分:0)
你的问题不明确,但我会采取行动。你也准备使用字典,为什么呢?列表更合适。
如果pcode只是一个singel值,那么你会这样做:
if pcode not in permitted:
#stuff
如果pcode是一个列表,你想检查pcode中的值是否允许,那么你会这样做:
if not set(pcode).issubset(permitted):
#stuff