多个表在django中的单个查询集中基于外键加入?

时间:2013-11-28 10:44:46

标签: python django django-models django-queryset

我在我的python django应用程序中使用sqlite3数据库:我正在定义我的表结构,它类似于我的实际表模式。

table1 having three column:
1. id | primary key | int
2. name | text
3. address | text

table2 having four column:
1. id | primary key | int
2. name_id | foreign key | int 
3. name_info | text
4. address_info | text


table3 having four column:
1. id | primary key | int
2. name_id | foreign key | int 
3. edu_info | text
4. busin_info | text


table4 having four column:
1. id | primary key | int
2. name_id | foreign key | int 
3. progress_info | text
4. inventory_info | text

依旧......

我想在django中基于forgein键在单个查询中访问所有表数据。没有必要所有表都有相同的记录。

我已经在所有模型中设置了外键。喜欢:

class table(models.Model):
    name = models.ForeignKey(modelname)

1 个答案:

答案 0 :(得分:2)

使用select_related()

YourModel.objects.select_related().filter(foreign_record__foreign_attribute__gt=foo)

select_related被转换为INNER JOIN查询并立即加载所有数据。