django03一對多關系

  • 邏輯刪除
    isdel

  • objects管理器(Manager對象)
    自定義管理器

    class studentManager(models.Manager):
        # 重寫all()
        def all(self):
        # 獲取所有數(shù)據(jù) super().all()
        # 邏輯刪除的數(shù)據(jù)不顯示
        return super().all().filter(isdel=False)
    

    系統(tǒng)(默認自動創(chuàng)建)

     objects = models.Manager()
    

    自定義

      myobjects = models.Manager()
    
  • 添加類方法[快速創(chuàng)建模型對象]

    @classmethod
    def create(cls,name,score):
        stu = cls(s_name=name,s_score=score)
        return stu
    

一對一

人 模型類
身份證 模型
關系: 一對一
主表(重要數(shù)據(jù)),從表(聲明關系)
class Person(models.Model):
    p_name =models.CharField(max_length=50)
    p_age = models.IntegerField()
    
    
class IDCard(models.Model):
    i_num = models.CharField(max_length=50)
    i_addr = models.CharField(max_length=255)

    # 關聯(lián)(約束)
    # 通過外鍵實現(xiàn),在外鍵中添加唯一約束(保證一對一)
    # 存的是person對象的id
    
    
    # 默認模式是 models.CASECADE
    # 默認情況:當人刪除時,身份證存在,人和身份證一起刪除
    # 默認情況:當人刪除時,身份證不存在,人刪除
    # i_person = models.OneToOneField(Person)
    
    
    # models.PROTECT保護模式:級聯(lián)數(shù)據(jù)存在,拋出異常:級聯(lián)數(shù)據(jù)不存在,直接刪除:
    # 當人刪除時,身份證存在,拋出異常
    # 當人刪除時,身份證不存在,直接刪除
    # i_person = models.OneToOneField(Person,on_delete=models.PROTECT)
   
   
    # models.SET_NULL 置空模式[該字段必須設置  允許為空]
    # 當人刪除時,身份證存在,該屬性設置bull
    # 當人刪除時,身份證不存在,直接刪除
    # i_person = models.OneToOneField(Person, on_delete=models.SET_NULL, null=True)    
    
    # model.SET_DAFAULT 設置默認值模式
    # i_person = models.OneToOneField(Person, on_delete=models.SET_DAFAULT, default=11)    
    

一對多

班級 模型類
學生 模型類
一個班對應多個學生
class Grade(models.Model):
    g_name = models.CharField(max_length=50)

class Student(models.Model):
    s_name = models.CharField(max_length=50)
    s_score = models.IntegerField()
    s_detail = models.CharField(max_length=50)
    
    # 聲明關系
    # 哪個班級的學生
    s_grade = models.ForeignKey(Grade,on_delete=models.SET_DETAULT,default=1)

student_set是object同源
主獲取從,隱式訪問,對象.關系表(小寫)_set.all()
student = grade.student_set.all()
從獲取主,顯示訪問:對象.屬性
grade = stu.s_grade

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 轉至元數(shù)據(jù)結尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 2,042評論 0 9
  • Django 準備 “虛擬環(huán)境為什么需要虛擬環(huán)境:到目前位置,我們所有的第三方包安裝都是直接通過 pip inst...
    33jubi閱讀 1,391評論 0 5
  • ORACLE自學教程 --create tabletestone ( id number, --序號usernam...
    落葉寂聊閱讀 1,241評論 0 0
  • 切換到創(chuàng)建項目的目錄 cd C:\Users\admin\Desktop\DjangoProject創(chuàng)建名為pr...
    在努力中閱讀 3,537評論 2 3
  • 在從事漢民族相貌研究的推理過程前,我們首先必須對近期在中國大陸上所發(fā)現(xiàn)的新中國古代史的發(fā)端,大致加以敘述。 關于中...
    新國學易經(jīng)閱讀 608評論 0 0

友情鏈接更多精彩內(nèi)容