Валидация не работает, определяется максимум и сообщение об ошибке, но даже после этого не работает

Я хочу, чтобы участник не мог сделать ставку больше, чем на оставшийся фонд. Если он инвестировал по 30 в первых трех раундах, то в следующем раунде он не может инвестировать более 110.(200-3*30)

Я не получаю никаких ошибок при запуске, но валидация не работает, сообщение об ошибке не появляется. даже если первая инвестиционная ставка больше 200.

Я хочу, чтобы общая сумма предложений, собранных для всех раундов, не превышала бюджет, заданный изначально.

Помогите пожалуйста

class Constants(BaseConstants):
    name_in_url = 'C'
    players_per_group = None
    num_rounds = 18
    budget = 200


class Subsession(BaseSubsession):
    pass


class Group(BaseGroup):
    pass


class Player(BasePlayer):
    invest = models.IntegerField(
        label="How much would you like to invest in this proposal?",
        min=0
    )
    total_invest = models.IntegerField()


# PAGES


class MyPage(Page):
    form_model = 'player'
    form_fields = ['invest']

    @staticmethod
    def total_invest(player: Player):
        player_in_all_rounds = player.in_all_rounds()
        return sum([p.invest for p in player_in_all_rounds])

    @staticmethod
    def avail_invest(player: Player):
        return Constants.budget - player.total_invest

    @staticmethod
    def invest_error_message(player, value):
        print('value is', value)
        if value > player.avail_invest:
            return 'Cannot invest more than your remaining fund'


class ResultsWaitPage(WaitPage):
    pass

**strong text**
class Results(Page):
    pass


page_sequence = [MyPage]

Вернуться на верх