1. 程式人生 > >Django1.6中models模型關聯的方法整理

Django1.6中models模型關聯的方法整理

1、models.ForeignKey

ForeignKey是個多對一(many to one)關係。引用下官方文件的例子:
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>
Pizza模型關聯到Toppinig模型。要建立一個Pizza模型有兩種方法: 1、
# 先建立一個Topping
t = Topping()
# 通過t來建立相關聯的Pizza
p = t.pizza_set.create()
這種方法適用於比較簡單一點的關係,比如投票系統,一個問題就固定對應幾個選項。若要在以存在的模型之間建立關係,則可使用第二種方法: 2、
t = Topping()
p = Pizza.objects.create(toppings=t)
ForeignKey的一些引數設定:
class Blog(models.Model):  
    user = models.ForeignKey(User, blank=True, null=True, on_delete=models.SET_NULL) 
ForeignKey預設在被關聯項刪除時,會將與之關聯的所有項一起刪除。要避免這種情況需要設定on_delete引數來規定進行刪除操作時的行為。除SET_NULL以外還有SET_DEFAULT等引數,更詳細的在文件裡有說明:官方文件 其他的關係型別等以後再補……