我是Django的新手,目前将现有的数据库方案定义为Django模型。
我有一个中央存储库来存储以下值:
(some_qualifier_id_1, some_qualifier_id_2, measure_id, value)
该值是数据库方式的整数。然而,它可以引用分类数据,在这种情况下,我想将它链接到另一个表,它提供了额外的信息,如应该显示的字符串而不是数字,订购信息。
我可以告诉Django使用值作为外键有时来创建表的链接吗?
更新: 使用int来获取类别 - 是的,这就是我所做的。然而,据我所知,模型层的重点是能够告诉Django表之间的关系如何。只是使用一个int并用它来查找东西就意味着将它一起攻击而不告诉Django我在做什么,这可能意味着我必须手动生成SQL而不是在某些时候使用模型层。使用案例:按类别表中的某个排序字段排序类别值。
答案 0 :(得分:1)
如果measure_id值在语义上是外键,那么每个值必须是度量表中某些内容的索引,然后将其声明为这样,并且每个值都将单独组合在一起。
如果measure_id值不是外键,您可以使用
按需注释结果集。MyModel.objects.filter(**your_filters).extra(select={
'measure_name':
'SELECT measure.name FROM measure WHERE mymodeltable.measure_id = measure.id'
})
然后,您检索到的对象将具有带有连接列的'measure_name'属性。