Django1.6中models模型關聯的方法整理
阿新 • • 發佈:2019-02-02
1、models.ForeignKey
ForeignKey是個多對一(many to one)關係。引用下官方文件的例子:Pizza模型關聯到Toppinig模型。要建立一個Pizza模型有兩種方法: 1、from django.db import models class Topping(models.Model): # ... pass class Pizza(models.Model): # ... toppings = models.ForeignKey<span style="font-family: Arial, Helvetica, sans-serif; line-height: 1.3em;">(Topping)</span>
# 先建立一個Topping
t = Topping()
# 通過t來建立相關聯的Pizza
p = t.pizza_set.create()
這種方法適用於比較簡單一點的關係,比如投票系統,一個問題就固定對應幾個選項。若要在以存在的模型之間建立關係,則可使用第二種方法:
2、t = Topping()
p = Pizza.objects.create(toppings=t)
ForeignKey的一些引數設定:
ForeignKey預設在被關聯項刪除時,會將與之關聯的所有項一起刪除。要避免這種情況需要設定on_delete引數來規定進行刪除操作時的行為。除SET_NULL以外還有SET_DEFAULT等引數,更詳細的在文件裡有說明:官方文件 其他的關係型別等以後再補……class Blog(models.Model): user = models.ForeignKey(User, blank=True, null=True, on_delete=models.SET_NULL)