首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将变量传递给FlaskForm的子类

如何将变量传递给FlaskForm的子类
EN

Stack Overflow用户
提问于 2020-10-13 23:09:10
回答 1查看 72关注 0票数 0

我有一个从FlaskForm派生的类,我需要传递参数

代码语言:javascript
复制
class User(FlaskForm):    
    def __init__(self, argName, argLastName): 
        super(EditCandidate, self).__init__()
        self.name = argLastName
        self.lastName = argLastName


    name = StringField(default = self.name , validators=[DataRequired(message="Ad xanası doldurulmalıdır."), Length(min=2, max=20, message="Ad min-2, max-20 hərfdən təşkil oluna bilər.")] )
    lastName = StringField(default= self.lastName , validators=[DataRequired(message="Soyad xanası doldurulmalıdır."), Length(min=2, max=20, message="Soyad min-2, max-20 hərfdən təşkil oluna bilər.")] )

但是Python给了我这个错误:

代码语言:javascript
复制
    name = StringField(default = self.name , validators=[DataRequired(message="Ad xanası doldurulmalıdır."), Length(min=2, max=20, message="Ad min-2, max-20 hərfdən təşkil oluna bilər.")] )
NameError: name 'self' is not defined

如何解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2020-10-14 01:59:29

Self表示类的实例/对象,并用于访问其属性和方法。

您的属性被定义为self.nameself.lastName,因此您只能使用上述属性,而不能使用self.argNameself.argLastName-这些属性作为参数传递给函数,不能在函数作用域之外进行访问。

StringField()调用中替换它们,它应该可以工作。

编辑:

在本例中,这是因为selfinit()方法之外,这意味着如果在初始化函数之外的任何地方使用该单词,则不会定义该单词本身。解决方法:缩进姓名和姓氏变量,使它们与self.<>属性显示在相同的缩进量上,如下所示

代码语言:javascript
复制
class User(FlaskForm):    
    def __init__(self, argName, argLastName): 
        super(EditCandidate, self).__init__()
        self.name = argLastName
        self.lastName = argLastName

    
        name = StringField(default = self.name , validators=[DataRequired(message="Ad xanası doldurulmalıdır."), Length(min=2, max=20, message="Ad min-2, max-20 hərfdən təşkil oluna bilər.")] )
        lastName = StringField(default= self.lastName , validators=[DataRequired(message="Soyad xanası doldurulmalıdır."), Length(min=2, max=20, message="Soyad min-2, max-20 hərfdən təşkil oluna bilər.")] )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64337928

复制
相关文章

相似问题

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