2017-01-17 6 views
1

양식 필드의 레이블을 양식의 __init__ 인수로 전달하고 싶습니다. 지금은 NameError: name 'self' is not defined 오류가 발생합니다. WTForms 필드의 레이블 전달 __init__

class MyForm(FlaskForm): 
    def __init__(self, label_t, **kw): 
     super(MyForm, self).__init__(**kw) 
     self.label_t = label_t 

    name = StringField(self.label_t, validators=[DataRequired()]) 

f = MyForm("test1", csrf_enabled=False) 

는 또한 , init 함수에 이름 변수를 퍼팅 시도하지만 AttributeError: 'UnboundField' object has no attribute '__call__'를 얻을.

class MyForm(FlaskForm): 
    def __init__(self, label_t, **kw): 
     super(MyForm, self).__init__(**kw) 
     self.label_t = label_t 
     self.name = StringField(self.label_t, validators=[DataRequired()]) 

어떻게 필드가 __init__하는 레이블을 전달할 수 있습니다?

답변

1

NameError의 이유 인 클래스 속성에서 self에 액세스 할 수 없습니다.

class MyForm(FlaskForm): 

    def __init__(self, label_t, **kw): 
     super(MyForm, self).__init__(**kw) 
     self.name.label = label_t 

    name = StringField(validators=[DataRequired()]) 
+0

감사합니다 : 당신이 __init__에 필드의 레이블을 설정하려면 단지 인스턴스의 label 속성을 설정! 말이된다 :) – squeck