<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 模型成員 ## 類的屬性 * objects:是Manager類型的對象,用于數據庫進行交互 * 當定義模型類時沒有指定管理器,則Django會為模型類提供一個名為objects的管理器 * 支持明確指定模型類的管理器 ```text class Grades(models.Model) grades = models.Manager() ``` * 當為模型類指定管理器后,django不再為模型類生成名為objects的默認管理器 ## 管理器Manager * 管理器是Django的模型進行數據庫的查詢操作的接口,Django應用的每個模型都擁有至少一個管理器 * 自定義管理器類主要用于兩種情況 * 情況一:向管理器類中添加額外的方法 * 情況二:修改管理器返回的原始查詢集:重寫get\_queryset\(\)方法 ```text class studentsManager(models.Manager): def get_queryset(self): return super(studentsManager,self).get_queryset().filter(isDelete=False) class Students(models.Model): stuObj = studentsManager() ``` ## 創建對象 * 當創建對象時,django不會對數據庫進行讀寫操作 * 調用save\(\)方法才與數據庫交互,將對象保存到數據庫中 * 使用關鍵字參數構造對象很麻煩,推薦使用下面的兩種方式 * 說明:\_\__init\_\_\_方法已經在基類models.Model中使用,在自定義模型中無法使用 * 方法一:在模型類中增加一個類方法: ```text class Students(models.Model): # 定義一個類方法創建對象 # cls代表了students類 @classmethod def createStudent(cls,name,age,gender,contend,grade,last,create,isDel=False): stu = cls( sname = name, sage = age, sgender = gender, scontend = contend, sgrade = grade, lastTime = last, createTime = create, isDelete = isDel ) return stu 調用:book = Students.createStudent(name,age,...) 保存:book.save() ``` * 方法二:在定義管理器中添加一個方法 * 在管理器的方法中,可以通過self.model來得到它所屬的模型類 ```text class studentsManager(models.Manager): def get_queryset(self): return super(studentsManager,self).get_queryset().filter(isDelete=False) def createStudent(self,name,age,gender,contend,grade,last,create,isDel=False): stu = self.model() stu.sname = name stu.sage = age stu.sgender = gender stu.scontend = contend stu.sgrade = grade stu.lastTime = last stu.createTime = create stu.isDelete = isDel return stu class Students(models.Model): .... stuObj = studentsManager() 調用:student = Students.stuObj.createStudent(name,age,...) 保存:student.save() ``` * 在方法二中,可以調用self.create\(\)創建并保存對象,不需要再手動save\(\) ```text class studentsManager(models.Manager): def get_queryset(self): return super(studentsManager,self).get_queryset().filter(isDelete=False) def createStudent(self,name,age,gender,contend,grade,last,create,isDel=False): stu = self.create(sname=name,sage=age,sgender=gender,scontend=contend,sgrade=grade,lastTime=last,createTime=create,isDelete=isDel) return stu class Students(model.Model): .... stuObj = StudentsManager() 調用:student = Students.stuObj.createStudents(name,age,...) 查看:student.pk ``` ## 實例屬性 * DoesNotExist:在進行單個查詢時,模型的對象不存在時會引發此異常,結合try/except使用 ## 實例方法 * str\(self\):重寫object方法,此方法在對象轉換字符串時會被調用 * save\(\):將模型對象保存到數據表中 * delete\(\):將模型對象從數據表中刪除
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看