首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >'TypeError: oTree页error_message中的'int‘对象不可订阅’

'TypeError: oTree页error_message中的'int‘对象不可订阅’
EN

Stack Overflow用户
提问于 2019-05-17 23:44:38
回答 1查看 159关注 0票数 1

我试图将个人在表单字段中输入的代码与我必须输入的代码列表进行比较,但我得到了下一个错误

代码语言:javascript
复制
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,但效果不好

代码语言:javascript
复制
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'
EN

回答 1

Stack Overflow用户

发布于 2019-05-17 23:51:48

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

在你的例子中,这将是一个只有一个条目的字典,因为你只有一个字段,例如,如果玩家输入了123,它将是:

代码语言:javascript
复制
values = {"number": 123}

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

代码语言:javascript
复制
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'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56189716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档