1

私はDjangoを学んでいます。特にフォームについて読んでいて、どのように機能するのか理解できません。サンプルコードを見てみましょう:

from django import forms

class ContactForm(forms.Form):
    subject = forms.CharField(max_length=100)
    message = forms.CharField()
    sender = forms.EmailField()
    cc_myself = forms.BooleanField(required=False)

無制限のメンバーでクラスを作成するのはなぜですか?self声明はありません。

私はDjangoのソースコード自体を調べました:

class Form(BaseForm):
"A collection of Fields, plus their associated data."
# This is a separate class from BaseForm in order to abstract the way
# self.fields is specified. This class (Form) is the one that does the
# fancy metaclass stuff purely for the semantic sugar -- it allows one
# to define a form using declarative syntax.
# BaseForm itself has no way of designating self.fields.
__metaclass__ = DeclarativeFieldsMetaclass

の役割を教えてください__metaclass__

4

1 に答える 1

0

フォームフィールドは記述子であり、特定のプロトコルに書き込まれたクラスです。メタクラスはクラスのタイプです(オブジェクトであるクラス自体が何かからインスタンス化されるため)。

于 2012-09-09T16:20:19.560 に答える