Python 使用单词长度比较单词时无错误
我试图使用Python 使用单词长度比较单词时无错误,python,otree,Python,Otree,我试图使用Otree对主题在表单字段中可以使用的最小字符数进行限制。我希望,如果受试者输入的名称长度小于4个字符,应用程序会向他们显示一个错误,说明他们必须写更长的单词 我使用的是len,但出现以下错误: 'NoneType' has no len() 有人能帮我找出代码中的错误并帮我修复它吗 这是我的pages.py代码 class Consentimiento(Page): form_model = 'player' form_fields = ['consentimi
Otree
对主题在表单字段中可以使用的最小字符数进行限制。我希望,如果受试者输入的名称长度小于4个字符,应用程序会向他们显示一个错误,说明他们必须写更长的单词
我使用的是len
,但出现以下错误:
'NoneType' has no len()
有人能帮我找出代码中的错误并帮我修复它吗
这是我的pages.py代码
class Consentimiento(Page):
form_model = 'player'
form_fields = ['consentimiento', 'consentimienton',]
def consentimiento_error_message(self, value):
print('El nombre es', value)
if len(self.player.consentimiento)) < Constants.number:
return 'Por favor en el campo de nombre debe poner mínimo 4 letras'
我注意到您的工作示例中有几个错误
正在检查数据,而不是用户提供的输入。您应该将其替换为len(self.player.approvisimento)
。(还要注意额外的偏执)len(value)
- 您正在使用
功能。这应定义为:fieldname\u error\u message(self,value)
- 用于字段,而不是页面
- 在模型下的
中,而不是在models.py
中pages.py
models.py中应该有以下内容:
# Don't forget to define number field in Constants
class Player(BasePlayer):
consentimienton = models.StringField( max_length=50 )
def consentimienton_error_message(self, value):
print('El nombre es', value)
if len(value) < Constants.number:
return 'Por favor en el campo de nombre debe poner mínimo 4 letras'
class Consentimiento(Page):
form_model = 'player'
form_fields = ['consentimienton']
这是什么?self.player.approvisimento另外,approvisimento和approvisimenton很容易混合self.player.approvisimento是一个空的stringField,人们在其中输入他们的名字。您确定它是stringField类型吗?尝试打印出类型为self.player.approvisimento
,然后检查它是否是兼容类型的len()
是的,我在models.py中定义了它
class Consentimiento(Page):
form_model = 'player'
form_fields = ['consentimienton']