Проверка не работает в OTREE, определен макс и сообщение об ошибке, но даже тогда не работает

#python #django #otree

#питон #джанго #отри

Вопрос:

Я хочу сделать так, чтобы участник не мог сделать ставку больше, чем на оставшийся фонд. Если он вложил по 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 gt; player.avail_invest:  return 'Cannot invest more than your remaining fund'   class ResultsWaitPage(WaitPage):  pass  **strong text** class Results(Page):  pass   page_sequence = [MyPage]