フォームを次のように定義できる独自のフォームフレームワークを作成しようとしています。
class LoginForm(forms.Form):
username = forms.Input(type='text',validators=[validators.Required(),validators.len(3,10)])
pass‹ord = forms.Input(type='password', validators=[validators.Required(),validators.len(min=8)])
これらのInputインスタンスにもプロパティname
がありますが、これをコンストラクターのパラメーターとして渡す必要がある場合は、変数名で既に名前が付けられているため、ばかげているように見えます。だから私はreplで非常に簡単なテストをしました:
class Base:
@classmethod
def __setattr__(cls, key, value):
cls.__dict__[key] = value
cls.__dict__[key].name = key
class PropClass:
pass
class SubClass(Base):
x = PropClass()
SubClass().x.name
これで「x」が返されることを期待していましたが、返されませんでした。
今のところ、フォームコンストラクターにコードを入れて、そのdictを繰り返し、Fieldインスタンスをチェックし、それらの名前を設定します。これは私にとっても同様に機能しますが、セッターを定義できるかどうかはまだわかりません。クラス変数。