# 閱讀文章
- Django 后端 rest 最简洁最快最全入门指南,1 天学会 DRF 后端不夸张,看这篇就够了!!
- Django 學習紀錄 8. 模型與資料庫:這篇很讚呢,教了這個東西
python manage.py shell |
感覺驗證查詢結果很方便!!
- 無法照著文內正常運作的原因:Class 名稱重複?抽象?多下一行試試?
我後來的下法:
# 留意直譯器模式下引用是否充足! | |
from myapp import models | |
from myapp.models import Account | |
# objects = models.Account () 其實不用這行也可以 | |
test = Account.objects.all() | |
test |
輸出:
<QuerySet [<Account: Account object (1)>, <Account: Account object (2)>, <Account: Account object (3)>, <Account: Account object (4)>, <Account: Account object (5)>, <Account: Account object (6)>, <Account: Account object (7)>]> |
- DRF 框架 (四)—— 单整体改 (put)、单局部改 (patch)、群局部改 (patch)--ListSerializer
- 之後寫修改記帳感覺可以參考
# 直譯器的摸索結果
# test = Account.objects.all() | |
entity1 = test[0] | |
entity1.id # output: 1 | |
# 開啟另個查詢吧 練習單筆查詢 | |
qs = Account.objects.get(id=5) | |
qs # output: <Account: Account object (5)> 也就是說這樣可以查詢到 id 為 5 的那個物件~ | |
# 練習過濾查詢(可以理解成 where) | |
qs2 = Account.objects.filter(kind='food') | |
qs2 # output: <QuerySet [<Account: Account object (3)>, <Account: Account object (4)>, <Account: Account object (5)>, <Account: Account object (6)>, <Account: Account object (7)>]> |
- 還有一個
order_by()的方法 - 查詢結果還可以一直鏈式寫下去
- 不是 QuerySet 的型態就無法再查下去了
- Spring QueryDSL 的鏈式查詢比較像 SQL 語句,Django ORM 比較像物件關係...?
- 關聯查詢
from myapp.models import ItemKinds | |
i = ItemKinds.account_set # 前面下反一直跳 type object 'Account' has no attribute 'itemkinds_set',總之要注意自己 models 設計的關聯關係 | |
i # output: <django.db.models.fields.related_descriptors.ReverseManyToOneDescriptor at 0x1dde2dac050> | |
# 查出類型是食物的記帳: | |
ik = ItemKinds.objects.get(kind='food') | |
ik.account_set | |
ik.account_set.all() # output: <QuerySet [<Account: Account object (3)>, <Account: Account object (4)>, <Account: Account object (5)>, <Account: Account object (6)>, <Account: Account object (7)>]> |
