最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django外鍵(ForeignKey)操作以及related_name的作用詳解

 更新時間:2019年07月29日 11:24:46   作者:leeyongbard  
這篇文章主要介紹了Django外鍵(ForeignKey)操作以及related_name的作用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

之前已經(jīng)寫過一篇關(guān)于Django外鍵的文章,但是當時并沒有介紹如何根據(jù)外鍵對數(shù)據(jù)的操作,也就是如何通過主表查詢子表或者通過子表查詢主表的信息

首先我定義了兩個模型,一個是老師模型,一個是學生模型,一個老師對應多個學生,這個算是一個一對多的類型(如下圖所示)

  

那么如果我們要想查詢一個老師對應的學生有哪些,該如何操作呢?

首先我們先查詢到老師的信息,在這里我們使用python shell 進行演示  ,輸入命令python manage.py shell 進入python shell操作界面:

第一步需要做的自然還是需要將我們的模型導入進來,并獲取老師的相關(guān)信息

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

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

執(zhí)行python manage.py makemigrations 和  python manage.py migrate 

從上圖可以看到和之前的_set操作的效果是一樣的,這兩個方法是相同的,所以如果覺得比較麻煩的話,可以在定義主表的外鍵的時候,直接就給外鍵定義好名稱使用related_name

上面的查詢主要是通過主表查詢子表的信息

下面說一下如何通過子表查詢主表的相關(guān)信息,也就是查詢一個學生所對應的老師的信息

首先需要先獲取一個子表的對象,那么就可以通過定義外鍵時候的那個外鍵的字段名獲取關(guān)于主表的信息了

比如我得到了一個student對象,然后我想要得到這個student對象對應的主表teache中的信息的話,就使用  student.teacher 獲取,其中這個teacher就是在子表中定義的外鍵字段,如下:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python如何輸出警告信息

    Python如何輸出警告信息

    這篇文章主要介紹了Python如何輸出警告信息,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • Tensorflow實現(xiàn)神經(jīng)網(wǎng)絡(luò)擬合線性回歸

    Tensorflow實現(xiàn)神經(jīng)網(wǎng)絡(luò)擬合線性回歸

    這篇文章主要為大家詳細介紹了Tensorflow實現(xiàn)神經(jīng)網(wǎng)絡(luò)擬合線性回歸,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • selenium設(shè)置瀏覽器為headless無頭模式(Chrome和Firefox)

    selenium設(shè)置瀏覽器為headless無頭模式(Chrome和Firefox)

    這篇文章主要介紹了selenium設(shè)置瀏覽器為headless無頭模式(Chrome和Firefox),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Python轉(zhuǎn)為C語言并編譯生成二進制文件的教程詳解

    Python轉(zhuǎn)為C語言并編譯生成二進制文件的教程詳解

    這篇文章主要為大家詳細介紹了將Python轉(zhuǎn)為C語言并編譯生成二進制文件的相關(guān)教程,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-12-12
  • python中sys.argv函數(shù)精簡概括

    python中sys.argv函數(shù)精簡概括

    本篇文章給大家分享了關(guān)于python中sys.argv函數(shù)的相關(guān)知識點,有興趣的朋友可以參考學習下。
    2018-07-07
  • Python Socket編程入門教程

    Python Socket編程入門教程

    這篇文章主要介紹了Python Socket編程入門教程,本文包含一個客戶端Socket編程實現(xiàn)和一個服務(wù)器端Socket編程例子,需要的朋友可以參考下
    2014-07-07
  • Python使用pymupdf實現(xiàn)PDF內(nèi)容搜索并顯示功能

    Python使用pymupdf實現(xiàn)PDF內(nèi)容搜索并顯示功能

    在日常工作和學習中,我們可能需要查找和提取PDF文件中的特定內(nèi)容,本文將介紹如何使用pymupdf實現(xiàn)PDF內(nèi)容搜索并顯示的功能,需要的可以參考下
    2023-08-08
  • Python正則表達式指南 推薦

    Python正則表達式指南 推薦

    本文介紹了Python對于正則表達式的支持,包括正則表達式基礎(chǔ)以及Python正則表達式標準庫的完整介紹及使用示例。本文的內(nèi)容不包括如何編寫高效的正則表達式、如何優(yōu)化正則表達式,這些主題請查看其他教程。
    2018-10-10
  • Python中queue模塊常用函數(shù)使用方法

    Python中queue模塊常用函數(shù)使用方法

    這篇文章主要介紹了Python的Queue模塊,包括其基本概念、常用函數(shù)和用法,Queue模塊是Python標準庫中的一部分,無需額外安裝即可使用,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-11-11
  • 淺談pandas中DataFrame關(guān)于顯示值省略的解決方法

    淺談pandas中DataFrame關(guān)于顯示值省略的解決方法

    下面小編就為大家分享一篇淺談pandas中DataFrame關(guān)于顯示值省略的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04

最新評論

察雅县| 阿坝县| 抚宁县| 新化县| 广州市| 湖州市| 磴口县| 安康市| 仙居县| 广南县| 凌海市| 万载县| 扎鲁特旗| 贵德县| 桐乡市| 从化市| 西藏| 阳泉市| 韶关市| 青海省| 武宣县| 喀什市| 郓城县| 淄博市| 襄樊市| 湟源县| 凤阳县| 肥乡县| 北碚区| 洛川县| 泽州县| 罗城| 建平县| 本溪| 富锦市| 正镶白旗| 汉阴县| 肥乡县| 射阳县| 昌图县| 榆林市|