Валидация не работает, определяется максимум и сообщение об ошибке, но даже после этого не работает
Я хочу, чтобы участник не мог сделать ставку больше, чем на оставшийся фонд. Если он инвестировал по 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]