我需要制作一个具有 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 和模型形式且不复制粘贴的情况下生成这些字段?