2017-01-17 23 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) 

我也試圖把名字變到初始化函數, 但我得到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

您不能從屬性self訪問NameError的原因。如果你想設置你的領域的標籤上__init__剛纔設置的label屬性的實例:

class MyForm(FlaskForm): 

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

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

謝謝!說得通 :) – squeck