本篇文章為大家展示了如何分析django models中的一對N關(guān)系,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
創(chuàng)新互聯(lián)是工信部頒發(fā)資質(zhì)IDC服務(wù)器商,為用戶提供優(yōu)質(zhì)的溫江服務(wù)器租用服務(wù)
下面介紹django models三種關(guān)系模型中的一對N關(guān)系:
一對N模型
在sql語言中,1:N關(guān)系是通過在‘附表’中設(shè)置到‘主表’的外鍵引用來完成在Django模型層,可以用models,Foreignkey 類型的字段定義外鍵
'''
內(nèi)容分類表
'''
class concat(models.Model):
# 分類id
id = models.BigAutoField(primary_key=True)
# 父類目ID=0時,代表的是一級的類目
parent_id = models.BigIntegerField(default=0)
# 名字
name = models.CharField(max_length=50)
# 狀態(tài)(可選值:1(正常),2(刪除))
status = models.IntegerField(default=1)
# 排列序號,表示同級類目的展現(xiàn)次序,如數(shù)值相等則按名稱次序排列。取值范圍:大于零的整數(shù)
sort_order = models.IntegerField(default=1)
# 該類目是否為父類目,1為true,0為false
is_parent = models.SmallIntegerField(default=1)
# 創(chuàng)建時間
created = models.DateTimeField(auto_now_add=True)
# 更新時間
updated = models.DateTimeField(auto_now=True)
'''
內(nèi)容表
'''
class content(models.Model):
# 內(nèi)容id
id = models.AutoField(primary_key=True),
# 分類id
cid = models.ForeignKey(concat, on_delete=models.CASCADE)
# 標(biāo)題
title = models.CharField(max_length=1000)
# 子標(biāo)題
sub_title = models.CharField(max_length=1000)
# 標(biāo)題描述
title_desc = models.CharField(max_length=500)
# 鏈接
url = models.CharField(max_length=500)
# 圖片的絕對路徑
pic = models.CharField(max_length=300)
# 內(nèi)容
content = models.TextField(default="")
# 創(chuàng)建時間
created = models.DateTimeField(auto_now_add=True)
# 更新時間
updated = models.DateTimeField(auto_now=True)
上述代碼與一對一關(guān)系的唯一不同就是用models.ForeignKey定義了content模型中的cid字段。這樣每個concat對象就可以與多個content對象關(guān)聯(lián)了
queinfo = que_info.objects.all()
for que in queinfo:
queCat = que.cid.name
#通過附對象獲取主對象
print que.cid
print queCat
可以直接通過點‘cid’,也就是外鍵來獲取他的主對象
a = que_cat.objects.all()
for a1 in a:
a1.que_info_set
#通過主對象獲取附對象
上述內(nèi)容就是如何分析django models中的一對N關(guān)系,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。