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)
Вернуться на верх