簡體   English   中英

如何根據存在於具有外鍵關系的不同表中的字段從表中獲取行?

[英]How to fetch rows from a table based on a field which is present in a different table having a foreign key relationship with it?

語境

我在 Django 中有兩個表如下

Table1: 
    - id
    - name
    - address
    - state
    - short_code
    
Table2: 
    - id
    - table1_id
    - p1, property (searchable field) 

Table1 和 Table2 的關系: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()限制返回的結果

筆記:

查看多對一關系的文檔

或者查詢集的文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM