欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

django在開發(fā)中取消外鍵約束的實現(xiàn)

 更新時間:2020年05月20日 10:35:04   作者:SSSuperFang  
這篇文章主要介紹了django在開發(fā)中取消外鍵約束的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

我就廢話不多說了,大家還是直接看代碼吧!

# 在setting設(shè)置外鍵
'OPTIONS': {
   "init_command": "SET foreign_key_checks = 0;",
  }

補充知識:django-給外鍵關(guān)系傳值,刪除外鍵關(guān)系

反查:

在表關(guān)系里 related_name = '反查name',自己不設(shè)置,django也會默認設(shè)置為class的小寫名字+_set , ex: book_set.

一對一關(guān)系賦值:

class ModelStudy(View):
 ''' ClassRoom和ClassNumber是一對一關(guān)系,給外鍵傳值 '''
 def get(self, request):
  ''' 兩種方法 教室ClassRoom和教室編號ClassNumber 外鍵字段在django類里名(room_number)在數(shù)據(jù)庫名(room_number_id) '''
     # 一.1賦值對象給外鍵字段
  # room_number = ClassNumber.objects.filter(class_number__exact='003')[0] # d對List切片
  # c = ClassRoom()
  # c.room_number = room_number
  # c.save()
  # 1.2新增數(shù)據(jù)并賦值對象給新增字段
  room_number = ClassNumber.objects.filter(class_number__exact='003')[0]
  print room_number
  ClassRoom.objects.create(name="python教室", room_number=room_number) # 新增數(shù)據(jù)

     # 二:獲取外鍵字段(數(shù)據(jù)庫的外鍵字段名字room_number_id)的值,將相對應(yīng)的值直接賦值給該外鍵字段
     class_number = ClassNumber.object.get("id=1").room_number # 獲取教室編號具體值 ‘001'
     c = ClassRoom.object.filter(id=1)[0]
     c.room_number_id = class_number # 將‘001'復(fù)制給數(shù)據(jù)庫外鍵字段 外鍵字段在django類里名(room_number)在數(shù)據(jù)庫名(room_number_id)
     c.save()
return HttpResponse("ojbk")

多對一:

類似一對一,只是 ''多''的一方可以對應(yīng)多個"一"方。 ps: "一"放通過反查,會有不止一條數(shù)據(jù)。可以通過+all()獲取。

假設(shè)兩張表:Book書 + Reply評論 表。為多對一,Reply為"多''. 那么"一",Book反查是,Book.object.get(id=1).reply_set.all() # reply_set是不設(shè)置related_name時,django自己設(shè)置的

多對多:

class ModelStudy(View):
 ''' Students和Teachers是多對多關(guān)系 '''
 def get(self, request):
  ''' 兩種情況 '''
  # 主類(外鍵所在類)數(shù)據(jù)已經(jīng)存在
  # t = Teachers.objects.get(id=1)
  # s = Students.objects.get(name="學(xué)生3")
  # s.teacher.add(t) # 多對多需要add數(shù)據(jù)
  # s.save()

  # 主類數(shù)據(jù)不存在,新增數(shù)據(jù)時, 需先save()
  t = Teachers.objects.get(id=1)
  s = Students(name='xiaodong1', age=10, gender="男")
  s.save() # 先存新增數(shù)據(jù)
  s.teacher.add(t) # 再給新增數(shù)據(jù)添加多對多關(guān)系   可以add(t, t1, t2)多個對應(yīng)的關(guān)系
  s.save()
  return HttpResponse("ojbk")

刪除關(guān)系數(shù)據(jù)

先查出對應(yīng)的關(guān)系數(shù)據(jù),在刪除

class ModelStudy(View):
 ''' Students和Teachers是多對多關(guān)系 '''
 def get(self, request):
  ''' 兩種情況 '''
  s = Students.objects.get(id=1)
  t = s.teacher.all() # 多對多 s.teacher是一個<QuerySet>list對象 通過反查取值需要all(),get(),filter之類的
  for x in t: # 刪除所有對應(yīng)關(guān)系 haha...
   s.teacher.remove(x)
  return HttpResponse("ojbk")

以上這篇django實現(xiàn)在開發(fā)中取消外鍵約束就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 簡述 Python 的類和對象

    簡述 Python 的類和對象

    這篇文章主要介紹了Python 的類和對象的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • python 讀取、寫入txt文件的示例

    python 讀取、寫入txt文件的示例

    這篇文章主要介紹了python 讀取、寫入txt文件的示例,幫助大家更好的利用python 處理文件,感興趣的朋友可以了解下
    2020-09-09
  • Python進階之如何快速將變量插入有序數(shù)組

    Python進階之如何快速將變量插入有序數(shù)組

    在我們學(xué)習(xí)python的過程中,學(xué)習(xí)序列是一門必修課。本文我們就來一起看一看Python是如何快速將變量插入有序數(shù)組的,感興趣的可以了解一下
    2023-04-04
  • python Opencv計算圖像相似度過程解析

    python Opencv計算圖像相似度過程解析

    這篇文章主要介紹了python Opencv計算圖像相似度過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • PyQt5-QDateEdit的簡單使用操作

    PyQt5-QDateEdit的簡單使用操作

    這篇文章主要介紹了PyQt5-QDateEdit的簡單使用操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • python實現(xiàn)用戶管理系統(tǒng)

    python實現(xiàn)用戶管理系統(tǒng)

    這篇文章主要為大家詳細介紹了python實現(xiàn)用戶管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 基于Python中numpy數(shù)組的合并實例講解

    基于Python中numpy數(shù)組的合并實例講解

    下面小編就為大家分享一篇基于Python中numpy數(shù)組的合并實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Django中FilePathField字段的用法

    Django中FilePathField字段的用法

    這篇文章主要介紹了Django中FilePathField字段的用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 詳解Python中的動態(tài)屬性和特性

    詳解Python中的動態(tài)屬性和特性

    本篇文章主要介紹了詳解Python中的動態(tài)屬性和特性,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • 簡析Python的閉包和裝飾器

    簡析Python的閉包和裝飾器

    這篇文章主要為大家詳細介紹了Python的閉包和裝飾器,何為閉包?何為裝飾器?感興趣的小伙伴們可以參考一下
    2016-02-02

最新評論