django中的數據庫外鍵操作


以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的值
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM