定义关于“自我”的类变量

时间:2019-10-13 10:28:13

标签: python django python-3.x django-forms

所以我试图建立一个Django表单,我想使用Django Choicefield。现在,对于choicefield,您必须为其提供选择,它实际上是一个元组列表。

我正在尝试使用在 init ()中声明的self.locales_allowed代替类变量locales_allowed。

class XXX(forms.Form):
    def init(self):
        self.locales allowed = XX




locale = forms.ChoiceField(
    label=label["locale"], choices=locales_allowed, required=True)
#How to use self.locales_allowed here?

如果我尝试这样做,我会不断得到NameError: name 'self' is not defined。我正在寻找一种方法来完成此任务。

1 个答案:

答案 0 :(得分:2)

直接的回答是“你不能”。但是,这里不需要使用实例变量进行选择,而只需使用没有self概念的类变量即可:

class MyForm(forms.Form):
    LOCALES_ALLOWED = ...

    locale = forms.ChoiceField(
        label=label["locale"], choices=LOCALES_ALLOWED, required=True)

我将LOCALES_ALLOWED大写,因为这是Python中常量的约定,但实际上不是必需的。这里的关键是您不需要实例变量,因为对于您创建的每个实例,选择都是相同的。