django的model操作匯整詳解
更新時間:2019年07月26日 14:58:53 作者:bainianminguo
這篇文章主要介紹了django的model操作匯整詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
單表操作
增加數據
auther_obj = {"auther_name":"崔皓然","auther_age":1}
models.auther.objects.create(
**auther_obj
)
models.auther.objects.create( auther_name="周雍博", auther_age=4 )
obj = models.auther( auther_name="崔洪艷", auther_age=29 ) obj.save()
obj = models.auther( auther_name = "王仙枝", auther_age = "50" ) obj.save()
刪除數據
models.auther.objects.filter(auther_name="崔洪艷")[0].delete()
一對多操作
增加數據
a_obj = models.auther.objects.get(id=1) models.book.objects.create( book_name = "python課程1", book_price = 12, book_auther = a_obj )
a_obj = models.auther.objects.get(id=5) models.book.objects.create( book_name = "java課程1", book_price = 13, book_auther_id = a_obj.id )
a_obj = models.auther.objects.get(id=2)
book_dict = {
"book_name":"python課程2",
"book_price":14,
"book_auther_id":a_obj.id
}
obj = models.book.objects.create(
**book_dict
)
a_obj = models.auther.objects.get(id=4)
book_dict = {
"book_name":"java課程2",
"book_price":15,
"book_auther":a_obj
}
models.book.objects.create(
**book_dict
)
一對多正向查詢
# 查詢id為2的書的所有作者的信息
obj = models.book.objects.get(id=2)
print(obj.book_auther.auther_name)
print(obj.book_auther.auther_age)
obj = models.book.objects.filter(id=2).values("book_name","book_price","book_auther__id","book_auther__auther_name","book_auther__auther_age")
print(obj)
# 查詢id為2的作者的出版的書
obj = models.book.objects.filter(book_auther_id=2).values("book_name","book_price","book_auther__id","book_auther__auther_name","book_auther__auther_age")
print(obj)
obj = models.book.objects.get(book_auther_id=2)
print(obj.book_auther.auther_age)
print(obj.book_auther.auther_name)
print(obj.book_name)
一對多反向查詢
# 查看出版社出版的書
obj = models.auther.objects.filter(id=2).values("auther_name","auther_age","book__book_name")
print(obj)
obj = models.auther.objects.get(id=2).book_set.values("book_name","book_price","book_auther__id","book_auther__auther_name","book_auther__auther_age")
print(obj)
多對多操作
增加數據
b1 = models.book.objects.get(id=1) b2 = models.book.objects.get(id=2) b4 = models.book.objects.get(id=4) b5 = models.book.objects.get(id=5) models.publish.objects.get(id=1).publish_book.add( b1,b2 )
book_list = [b1,b2] models.publish.objects.get(id=2).publish_book.add( *book_list )
更新數據
book_list = [b1,b2,b4,b5] models.publish.objects.get(id=1).publish_book.set(book_list)
移除數據
models.publish.objects.get(id=1).publish_book.remove(b1) book_list = [b2, ] models.publish.objects.get(id=1).publish_book.remove(*book_list)
正向查詢
obj = models.publish.objects.get(id=1).publish_book.values("book_name","publish__publish_name")
print(obj)
obj = models.publish.objects.filter(id=1).values("publish_name","publish_book__book_name")
print(obj)
反向添加數據
p1 = models.publish.objects.get(id=1) p2 = models.publish.objects.get(id=2) p3 = models.publish.objects.get(id=3) b1.publish_set.add(p1,p2,p3)
反向刪除數據
b1.publish_set.remove(p1)
反向更新數據,把remove替換為set就可以了
反向查詢
obj = models.book.objects.get(id=1).publish_set.values("publish_name","publish_book__book_name")
model中多表關系和參數



多對多



一對一

model操作







以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
python cx_Oracle的基礎使用方法(連接和增刪改查)
這篇文章主要給大家介紹了關于python cx_Oracle的基礎使用方法,其中包括連接、增刪改查等基本操作,并給大家分享了python 連接Oracle 亂碼問題的解決方法,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。2017-11-11
python中將字典形式的數據循環(huán)插入Excel
這篇文章主要介紹了python中將字典形式的數據循環(huán)插入Excel的方法,需要的朋友可以參考下2018-01-01
Windows 下python3.8環(huán)境安裝教程圖文詳解
這篇文章主要介紹了Windows 下python3.8環(huán)境安裝教程圖文詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03
Anaconda中更新當前環(huán)境的Python版本詳細步驟
Anaconda是一個開源的Python發(fā)行版本,其包含了conda、Python等180多個科學包及其依賴項,下面這篇文章主要給大家介紹了關于Anaconda中更新當前環(huán)境的Python版本的詳細步驟,需要的朋友可以參考下2024-08-08

