Django forms.py 初始化错误?
Django forms.py initialized wrongly?
我有一个 django 视图将用户的首选语言环境传达给 forms.py 中的表单。但是,该表单似乎在我调用它之前就已经初始化了。
Class SurveyForm() 似乎在 before 我从 views.py 甚至 before SurveyForms 的调用中加载() init 函数启动。
代码如下:
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
class 时,它确实有效。
当我将 translation.activate('nl')
放在 __init__
或 views.py
中时,它不起作用。如何改变?
注意:我使用模型翻译,因此 Q1.name
将在荷兰语处于活动状态时获得荷兰语翻译。
class 级别的任何内容在定义 class 时在第一次导入时执行。您已经知道如何在实例化时执行操作 - 通过在 __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 = ...
我有一个 django 视图将用户的首选语言环境传达给 forms.py 中的表单。但是,该表单似乎在我调用它之前就已经初始化了。
Class SurveyForm() 似乎在 before 我从 views.py 甚至 before SurveyForms 的调用中加载() init 函数启动。
代码如下:
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
class 时,它确实有效。
当我将 translation.activate('nl')
放在 __init__
或 views.py
中时,它不起作用。如何改变?
注意:我使用模型翻译,因此 Q1.name
将在荷兰语处于活动状态时获得荷兰语翻译。
class 级别的任何内容在定义 class 时在第一次导入时执行。您已经知道如何在实例化时执行操作 - 通过在 __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 = ...