如何根据存在于具有外键关系的其他表中的字段从表中提取行



我在Django中有两个表,如下所示:

Table1: 
- id
- name
- address
- state
- short_code

Table2: 
- id
- table1_id
- p1, property (searchable field) 

表1和表2之间的关系:Table1(1) -> Table2(n) [ 1->n ]

假设我在Table2中有一个可搜索的属性p1。如何从满足以下查询参数的Table1中获取所有行?

short_code(table1 field), state(table1 field), and property as p1(table2 field)

记住,Table1与Table2有1:n关系,因此Table2可以有多行满足Table1中字段id的外键关系。

您可以执行相关查找:

class MyModel1(models.Model):
model2 = models.ForeignKey('myapp.MyModel2', related_name='model1',...)
class MyModel2(models.Model):
fields...

现在你可以做:

MyModel1.objects.filter(model2__pk=YOUR_MODEL2_PK)

MyModel2.objects.filter(model1__pk=YOUR_MODEL_1_PK)

您可以限制.only()返回的结果

注意:

查看多对一关系的文档

或者查询集的文档

相关内容

最新更新