【问题标题】:'TypeError: 'int' object is not subscriptable' in oTree Page error_messageoTree 页面 error_message 中的“TypeError:‘int’对象不可下标”
【发布时间】:2019-05-17 15:44:37
【问题描述】:

我正在尝试将个人在表单字段中输入的代码与我必须输入的代码列表进行比较,但出现下一个错误

Internal Server Error: /p/75spo3h2/beliefs/Code/1/
Traceback (most recent call last):
File "c:\users\diese\appdata\local\programs\python\python36\lib\site- 
packages\otree\forms\forms.py", line 252, in _clean_fields
error_string = error_message_method(value)
File "C:\Users\diese\beliefs\beliefs\pages.py", line 15, in 
number_error_message
if value[("numbers")] not in [int(1234, 3456, 6986)]:
TypeError: 'int' object is not subscriptable
ERROR Internal Server Error: /p/75spo3h2/beliefs/Code/1/
Traceback (most recent call last):
  File "c:\users\diese\appdata\local\programs\python\python36\lib\site- 
packages\otree\forms\forms.py", line 252, in _clean_fields
error_string = error_message_method(value)
  File "C:\Users\diese\beliefs\beliefs\pages.py", line 15, in 
number_error_message 
if value[("numbers")] not in [int(1234, 3456, 6986)]:
TypeError: 'int' object is not subscriptable

我尝试将数字更改为 int,但效果不佳

class Code(Page):
    form_model = 'player'
    form_fields = ['number']

    def number_error_message(self, value):
        print('El número que pusiste es', value)
        if value[("numbers")] not in [1234, 3456, 6986]:
           return 'El código debe corresponder al código que se le entrego en la sesión 1'

【问题讨论】:

  • number_error_message 是如何以及在哪里调用的?能把Code的完整代码展示一下吗?

标签: python otree


【解决方案1】:

Page 中您可以在子类中覆盖的错误消息生成方法称为error_message。它接收一个字典values,其中包含页面中所有form_fields 的值。

在您的情况下,这将是一个包含单个条目的字典,因为您只有一个字段,例如如果玩家输入123,它将是:

values = {"number": 123}

因此,以下应该是正确的实现:

class Code(Page):
    form_model = 'player'
    form_fields = ['number']

    def error_message(self, values):
        print('El número que pusiste es', values["number"])
        if values["number"] not in [1234, 3456, 6986]:
             return 'El código debe corresponder al código que se le entrego en la sesión 1'

【讨论】:

    猜你喜欢
    • 2017-07-15
    • 2012-02-21
    • 2018-08-07
    • 2023-04-02
    • 2017-11-10
    • 2023-03-20
    • 2015-07-31
    相关资源
    最近更新 更多