Django 模型表单未验证 BooleanField
Django Model Form is not validating the BooleanField
在我的模型中,验证不是针对布尔字段的验证,只需要检查一次product_field,如果检查两次则加注
product_field = models.BooleanField(default=False)
product_field_count = 0
for row in range(0,product_field_count):
if self.data.getlist(f'product_info_set-{row}-product_field'):
product_field_count += 1
if product_field_count <= 1:
raise ValidationError(
_(
" Need to Be Select Once"
))
验证错误。
你可以用sum(iterable, /, start=0)
整理一下支票:
product_field_name_count = sum(
[
True
for row in range(0, product_field_count)
if self.data.getlist(f"product_info_set-{row}-product_field") is not None
]
)
if product_field_name_count > 1:
raise ValidationError(
'Only one item of this type may be selected'
)
如果您发现这没有按预期工作,您可能需要添加 print()
以确保关于某些变量在哪里正确的基本假设。
import pprint
pprint.pprint(self)
pprint.pprint(self.__dict__)
pprint.pprint(self.data)
在我的模型中,验证不是针对布尔字段的验证,只需要检查一次product_field,如果检查两次则加注
product_field = models.BooleanField(default=False)
product_field_count = 0
for row in range(0,product_field_count):
if self.data.getlist(f'product_info_set-{row}-product_field'):
product_field_count += 1
if product_field_count <= 1:
raise ValidationError(
_(
" Need to Be Select Once"
))
验证错误。
你可以用sum(iterable, /, start=0)
整理一下支票:
product_field_name_count = sum(
[
True
for row in range(0, product_field_count)
if self.data.getlist(f"product_info_set-{row}-product_field") is not None
]
)
if product_field_name_count > 1:
raise ValidationError(
'Only one item of this type may be selected'
)
如果您发现这没有按预期工作,您可能需要添加 print()
以确保关于某些变量在哪里正确的基本假设。
import pprint
pprint.pprint(self)
pprint.pprint(self.__dict__)
pprint.pprint(self.data)