Django自定义表单验证无效

时间:2018-01-25 17:11:35

标签: python django django-forms

我正在尝试在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

最终目标是不应该允许任何不在该元组中的内容,并且应该返回验证错误。任何帮助都非常感谢。

2 个答案:

答案 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