前言
我需要具有一组单独的字段(字段模型)的对象(对象模型)。它包含名称和类型(参见图表)。Object 和 Field 之间的每个连接都存储字段的值。值的数据类型取决于字段类型属性,并且在物理上该值将存储在预定义的 db 列之一(value_number、value_text、...)中。
我希望它如何工作:
field = Field.objects.get(pk=1)
sought_for = Object.fields.filter(field=field, value='test')
有没有办法创建这样一个可以像示例中一样简单地放入 QuerySet 的字段,但实际上,根据字段的类型,它使用不同的 db 列甚至列,因为我认为将来会有这样的类型涉及多个列来存储其值。
PS 我尝试了一些 EAV 应用程序,但对于我的情况来说它们似乎太复杂了。
示意图:
- 字段模型,它存储字段的名称和类型
- FieldValue,存储字段值的模型。
UPD:最终我想到使用 Postgres(或任何关系数据库)的方法并不是最佳选择。我在 MongoDB 中轻松实现了这个。