2016-01-24 100 views
1

我有一個django視圖將用戶的首選語言環境傳達給forms.py中的表單。然而,這種形式似乎在我稱之爲初始化之前。Django forms.py錯誤地初始化了嗎?

類SurveyForm()似乎負荷views.py 我的電話,甚至()初始化功能有效的SurveyForms。

下面是代碼:

class SurveyForm(forms.Form): 
    questions = Question.objects.all() 
    Q1 = questions.get(identifier='Q1') 
    question1 = forms.CharField(required=False, label=Q1.name) 

    def __init__(self, *args, **kwargs): 
     translation.activate('nl') 

當我把translation.activate('nl')SurveyForm類,它的工作。 當我把translation.activate('nl')__init__,或views.py,這是行不通的。這如何改變?

注:我用modeltranslation,所以Q1.name將得到荷蘭語翻譯時,荷蘭語是活躍的。被定義的類時,執行

+0

請確認自己已正確編輯的代碼。 – holdenweb

回答

1

在任何類級別,在第一進口。你已經知道如何在瞬間完成任務 - 通過__init__方法來完成。

這不是從你的問題是什麼Q1是明確的。它是一個領域?如果是這樣,您可以將其添加到self.fields;否則直接在self上設置。

def __init__(self, *args, **kwargs): 
    translation.activate('nl') 
    super(SurveyForm, self).__init__(*args, **kwargs) 
    self.fields['Q1'] = ... 
    # or 
    self.Q1 = ... 
+0

感謝您的回答,我已更新代碼以確保清晰。 – Jdruiter

+0

1. self.fields ['Q1']給出錯誤:'SurveyForm'對象沒有屬性'字段' – Jdruiter

+0

2. self.Q1:有效,但我在模板中獲得: Jdruiter