Mad*_*bat 5 python django entity-attribute-value
我需要实现一个相当标准的实体-属性-值层次结构。有多种类型的设备,每种类型都有一堆可以设置的设置,每个单独的设备都有针对每个设置的一组特定值。看来django-eav和eav-django软件包都不再维护了,所以我想我需要自己动手。但是,我该如何设计呢?到目前为止,我在想这样的事情(跳过很多细节)
DeviceType(Model)类:
名称= CharField()
类Device(Model):
名称= CharField()
类型= ForeignKey(DeviceType)
类设置(模型):
名称= CharField()
类型= CharField(choices =((('Number','int'),('String','str'),('Boolean','bool')))
device_type = ForeignKey(设备类型)
类Value(Model):
设备= ForeignKey(设备)
设置= ForeignKey(设置)
值= CharField()
def __setattr __(自身,名称,值):
如果名称=='值':
...根据设置类型进行验证...
def __getattr __(自己,名字):
如果名称=='值':
...将字符串转换为该类型的正确值...
我想念什么吗?有更好的方法吗?这样行吗?
pal*_*rni -1
我正在尝试回答,请告诉我,我们是否在同一架飞机上。我认为,你需要首先制定EAV数据库场景。为此,确定实体、属性和关联值是什么。在这里,在您提到的示例中,实体可能是设备,其属性可能是设置。如果我们再举个例子,比如说汽车销售,实体是销售收据,属性是客户购买的产品(汽车),值是价格、汽车型号、汽车颜色等。如果满足以下条件,则创建主表和存储映射的表任何。models.py 中的此架构实现将创建您的模型,并通过 shell 或插入脚本在这些模型中插入值。