這篇文章主要為大家展示了“Django外鍵ForeignKey操作以及related_name作用的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Django外鍵ForeignKey操作以及related_name作用的示例分析”這篇文章吧。
首先我定義了兩個模型,一個是老師模型,一個是學生模型,一個老師對應多個學生,這個算是一個一對多的類型(如下圖所示)
那么如果我們要想查詢一個老師對應的學生有哪些,該如何操作呢?
首先我們先查詢到老師的信息,在這里我們使用python shell 進行演示 ,輸入命令python manage.py shell 進入python shell操作界面:
第一步需要做的自然還是需要將我們的模型導入進來,并獲取老師的相關信息

返回一個teacher對象,接下來就是查詢teacher相關聯的學生對象,在這里有一個需要注意的點,django默認情況下每一個主表的對象都有一個是外鍵的屬性,可以通過它查詢到所有關于子表的信息,這個屬性的名字就是子表的名稱小寫加上_set,具體到這個就是student_set,默認返回的是QuerySet,操作如下:

在這里也會牽涉到另外一個知識點related_name的使用,在models.py使用Foreign定義外鍵的時候也可以傳入一個參數related_name,操作如下:

執行python manage.py makemigrations 和 python manage.py migrate

從上圖可以看到和之前的_set操作的效果是一樣的,這兩個方法是相同的,所以如果覺得比較麻煩的話,可以在定義主表的外鍵的時候,直接就給外鍵定義好名稱使用related_name
上面的查詢主要是通過主表查詢子表的信息
下面說一下如何通過子表查詢主表的相關信息,也就是查詢一個學生所對應的老師的信息
首先需要先獲取一個子表的對象,那么就可以通過定義外鍵時候的那個外鍵的字段名獲取關于主表的信息了
比如我得到了一個student對象,然后我想要得到這個student對象對應的主表teache中的信息的話,就使用 student.teacher 獲取,其中這個teacher就是在子表中定義的外鍵字段,如下:

以上是“Django外鍵ForeignKey操作以及related_name作用的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。