SQLite到Django - 连接具有相同字段名称的表

时间:2015-09-29 16:33:17

标签: python django sqlite django-models

我正在尝试将这个非常简化的查询转移到Django模型:

select B.value from A join B on A.id = B.id where B.param = "foo" group by B.value;

基本上为我提供了具有共同B.value

的唯一id

我在Django的模型是:

#A
id = CharField()
...

#B
id = CharField()
param = CharField()
value = CharField()
...

据我所知,人们反对在Django中加入表。我的查询如何以最简单的形式转换为Django?

我几乎愿意使用django.db.connection执行此查询,但我不想

1 个答案:

答案 0 :(得分:2)

您似乎正在尝试检索与B值匹配的param的所有值,并在id中具有相应的A ..对吗?

试试这个:

a_ids = A.objects.values_list('id', flat=True)
b_values = B.objects.filter(param='foo', id__in=a_ids).values_list('value', flat=True).distinct()

我建议您根据用例查看查询,而不是将查询转换为ORM等效项。