Django Model Form не проверяет достоверность поля BooleanField
В моей модели валидация не проверяет поле boolean, только один раз поле 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(
_(
"Manage Only Preferred Weeds 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)