相关疑难解决方法(0)

Python类中的属性初始化/声明:放置它们的位置?

我想知道在Python中,在类的主体或__init__函数内部初始化对象属性的最佳实践是什么?

class A(object):
    foo = None
Run Code Online (Sandbox Code Playgroud)

VS

class A(object):
   def __init__(self):
       self.foo = None
Run Code Online (Sandbox Code Playgroud)

python attributes coding-style

44
推荐指数
1
解决办法
2万
查看次数

覆盖django中ChoiceField的初始化

我正在尝试初始化一个包含ChoiceField在django中的表单.我有以下代码:

# in file models.py
class Locality(models.Model):
    locality = models.CharField(primary_key=True, unique=True, max_length=36)
    def __unicode__(self):
        return self.locality

# in file forms.py
class RegisterForm(forms.Form): 
    def __init__(self, *args, **kwargs):
        self.username = forms.CharField(required=True)
        self.email = forms.EmailField(required=True)
        self.locality = forms.ChoiceField(widget=forms.Select())
        self.fields['locality'].choices = [l.locality for l in Locality.objects.all()]
Run Code Online (Sandbox Code Playgroud)

但是,一旦我尝试实例化,我就会在外壳上:

r = RegisterForm(username ="toto",email ="a@b.com")

我收到了'RegisterForm' object has no attribute 'fields' error.这是否因为物体尚未形成而发生?我怎样才能访问ChoiceField

任何帮助赞赏.

python django django-forms

1
推荐指数
1
解决办法
2909
查看次数

标签 统计

python ×2

attributes ×1

coding-style ×1

django ×1

django-forms ×1