首页 > 解决方案 > 使用两种可能的条件创建验证错误

问题描述

我可以创建一个带有一个条件的 if not 语句。这有效 -

if not "ABC124" in voucher:
     raise forms.ValidationError("Invalid Voucher")
return voucher

这有效 -

if not "ABC124" in voucher:
     raise forms.ValidationError("Invalid Voucher")
return voucher

但这不起作用-

 if not "ABC124" in voucher or if not "ABC123" in voucher:
      raise forms.ValidationError("Invalid Voucher")
 return voucher

这不起作用 -

if not "ABC124" in voucher or not "ABC123" in voucher :
     raise forms.ValidationError("Invalid Voucher")
return voucher

如何制作具有两个条件的 if 语句?

标签: python-3.xdjangodjango-forms

解决方案


由于德摩根定律[wiki],您需要and用作运算符,而不是or

if 'ABC124' not in voucher and 'ABC123' not in voucher :
     raise forms.ValidationError('Invalid Voucher')
return voucher

因此,只有当凭证不包含且不'ABC124' 包含任何'ABC123'一个时,才会引发错误。


注意:写比写 更易读。x not in ynot x in y


推荐阅读