django中的資料庫外來鍵操作

2022-07-16 18:33:11 字數 1096 閱讀 7527

以mysql為例:

(1)在model中定義兩個資料表,食物資訊和食物類別資訊

class foodinfo(models.model):

food_id = models.autofield(max_length=4)   #自定義主鍵,不指定主鍵缺省會生成乙個名為『id』列的主鍵

food_name = models.charfield(max_length=10)

food_content = models.charfield(max_length=100)

food_price = models.floatfield()

food_sort = models.foreignkey(foodsorts)   #外來鍵指向到foodsorts表中的主鍵

food_unit = models.charfield(max_length=4)

def __str__(self):

return self.food_name

class foodsorts(models.model):

sort_name = models.charfield(max_length=10)

sort_id = models.autofield(max_length=4)

def __str__(self):

return self.sort_name

(2)操作外來鍵讀取資料

從foodinfo表中通過外來鍵獲取foodsorts表中的資訊(資料關係是一對一):

a = foodinfo.objects.get(food_id=10)

a.foodsorts

a.foodsorts.sort_id

從foodsorts表中反向獲取foodinfo表中的資訊(資料關係是一對多):

b = foodsorts.objects.get(sort_id=4)

b.foodinfo_set.all()

屬性名稱foodinfo_set是由模型名稱的小寫(如foodinfo)加_set組成的。這裡說一下,在foreignkey函式中有乙個引數related_name,如果設定了這個引數就可以不用_set的形式了,可以直接用related_name的值

FYI django資料庫操作 外來鍵

我先定義兩個模型,乙個是作者,乙個是作者出版的書籍,算是一對多的型別。class person models.model name models.charfield 作者姓名 max length 10 age models.integerfield 作者年齡 class book models.m...

資料庫 外來鍵

外來鍵是什麼?外來鍵 fk 是用於建立和加強兩個表資料之間的鏈結的一列或多列。通過將儲存表中主鍵值的一列或多列新增到另乙個表中,可建立兩個表之間的鏈結。這個列就成為第二個表的外來鍵。外來鍵資料庫一級的完整性約束,由資料庫自行維護.你也可以手動建立.1如果存在外來鍵關係的話,任何修改主表主鍵欄位和刪除...

資料庫外來鍵

主鍵 能夠唯一標識表中某一行的屬性或屬性組。乙個表只能有乙個主鍵,但是可以有多個索引。主鍵常常與外來鍵構成完整性約束,防止出現資料的不一致,資料庫管理系統對於主鍵自動生成唯一索引,所以主鍵是乙個特殊的索引。外來鍵 用於建立和加強兩個表資料之間的連線的一列或者多列。外來鍵主要是用來維護兩個表之間的資料...