【发布时间】:2016-08-24 19:41:45
【问题描述】:
我需要实现一个相当标准的实体-属性-值层次结构。有多种类型的设备,每种类型都有一堆可以拥有的设置,每个单独的设备都有一组用于每个设置的特定值。似乎 django-eav 和 eav-django 包都不再维护,所以我想我需要自己动手。但是我该如何构建呢?到目前为止,我在想这样的事情(跳过很多细节)
类设备类型(型号): 名称 = CharField() 类设备(型号): 名称 = CharField() 类型 = ForeignKey(DeviceType) 类设置(模型): 名称 = CharField() type = CharField(choices=(('Number', 'int'), ('String', 'str'), ('Boolean', 'bool'))) device_type = ForeignKey(DeviceType) 类值(模型): 设备=外键(设备) 设置=外键(设置) 值 = CharField() def __setattr__(self, name, value): 如果名称 == '值': ...根据设置类型进行验证... def __getattr__(自我,姓名): 如果名称 == '值': ...将字符串转换为该类型的正确值...我错过了什么吗?有没有更好的方法来做到这一点?这行得通吗?
【问题讨论】:
标签: python django entity-attribute-value