我有一些将在同一庄园中使用的物品。此对象分类在此对象的预定义类型中。每种类型都具有属于此类对象的属性。 为了在模型中得到这个,我想到了这个模型表:
它确实有效,但需要一些编程来保持一致。
此解决方案的另一个问题是属性的字段类型,这可能不同。所以或者我将使用1字段类型(charField)并尝试解析它,或者我将使用具有最常用字段类型的不同值字段的表(value_integer = models.IntegerField)。在这种情况下,您可以获得大量的emtpy字段,只需要为每个属性填充1个字段。其实我在寻找某种字典...
不确定这是否是正确的方法....任何建议?
答案 0 :(得分:0)
Django的方法是为每个对象类型定义一个模型类,正如所有Django的功能(管理,表单,外部应用程序......)所期望的那样。
您可以定义超类并使用model inheritance,例如:
class BaseThing(models.Model):
# fields/relations for all types of things
class FooThing(BaseThing):
# fields/relations for things of type "foo"
class BarThing(BaseThing):
# fields/relations for things of type "bar"
在那里,您可以像往常一样predefine defaults。
如果您希望您的用户在管理员中创建他们的类,那么请考虑另一个框架(例如eZ Publish适合此需求)。