15 の同様のフィールドを持つモデルを作成する必要があります (それらfield_01
をfield_02
、field_03
、 などと呼びましょう)。また、これらのフィールドを簡単に利用できるようにする必要があります (たとえば、 のようなことができるようにするためobj.field_01
)。私は何かをすぐに軌道に乗せたかったので、愚かな方法でそれらを作成しました:
class M (models.Model):
....
field_01 = models.NullBooleanField()
field_02 = models.NullBooleanField()
....
これを行うためのより良い方法をオンラインで検索しました。use と言う人もいますsetattr
が、読んで試してみた限りでは、これはクラス自体ではなく、クラスのインスタンスに属性を追加します。つまり、モデルフォームをこのモデルにアタッチしようとすると、で追加されたフィールドは表示されませんsetattr
。次に、関数をオーバーライドしてみ__new__
ました。これにより、クラスのインスタンスが作成される前にクラスにプロパティを追加できます。しかし、これを正確に行う方法を理解できませんでした。
では、South とモデル フォームを壊すことなく、コピー アンド ペーストせずにこれらのフィールドを生成する方法は何でしょうか?