「Django Unleashed筆記/第三章」修訂間的差異

增加 1,776 位元組 、 2022年9月25日 (日) 19:33
無編輯摘要
行 53: 行 53:
       get_latest_by = ['founded_date'] # 取最後一個的取出依據
       get_latest_by = ['founded_date'] # 取最後一個的取出依據
       verbose_name_plural = "ponies" # 複數呈現法
       verbose_name_plural = "ponies" # 複數呈現法
</pre>
* 假設在表單呈現時,DisplayModel 通常被轉換為 display model。
* 假設在表單呈現時,DisplayModel 通常被轉換為 display model。
* Django 的處理方式:
* Django 的處理方式:
行 63: 行 65:
** migrations/0001_initial.py 等等是 migration 檔
** migrations/0001_initial.py 等等是 migration 檔
*** {{code|./manage.py sqlmigrate blog 0001}} # 產生對應的 sql 檔
*** {{code|./manage.py sqlmigrate blog 0001}} # 產生對應的 sql 檔
* {{code|./manage.py migrate}}
* {{code|./manage.py migrate}} # migrate
 
: ORM 操作
*  {{code|./manage.py shell}}  #進入 shell
* {{code|from myblog.models import Tag, ...}} # 匯入 class(表格)
* {{code|<nowiki>example = Tag('name='Education', slug='education')</nowiki>}} # 建立新列(資料)
* {{code|example.save()}} # 儲存列
* {{code|example.delete()}} # 刪除列
 
 
:: manager:通常為 Tag.objects這樣的形式,型別為{{code|django.db.models.manager.Manager}},綁在Tag 等「class 名稱」中。
* {{code|<nowiki>Tag.objects.create(name='xxx', slug='yyy')</nowiki>}} # 創建新物件
* {{code|<nowiki>Tag.objects.bulk_create([Tag(name='xxx', slug='yyy'), Tag(name='zzz', slug='aaa')])</nowiki>}} #創建多個物件
* {{code|Tag.objects.all()}}#顯示列表
*{{code|Tag.objects.count()}}#顯示總數
*{{code|<nowiki>Tag.objects.get(slug='xxx')</nowiki>}}#得到特定條件的資料
*{{code|<nowiki>Tag.objects.get(slug__iexact='xxx')</nowiki>}}#得到特定條件的資料,大小寫不區分
*{{code|<nowiki>Tag.objects.get(slug__istartswith='xxx')</nowiki>}}#以xxx開頭的資料
*{{code|<nowiki>Tag.objects.get(slug__contains='xxx')</nowiki>}}#包含xxx的資料
*{{code|Tag.objects.get}}最多只能得到1個資料,多個資料要用{{code|<nowiki>Tag.objects.filter(slug__contains='yyy')</nowiki>}}
*{{code|<nowiki>Tag.objects.filter(slug__contains='yyy').order_by('-name')</nowiki>}} #排序
*{{code|<nowiki>Tag.objects.values_list()</nowiki>}} #產出[(3, 'xxx', 'yyy'),...]的各物件列表
*{{code|<nowiki>Tag.objects.values_list('name', 'slug')</nowiki>}} #產出[('xxx', 'yyy'),...]的各物件列表,指定屬性
*{{code|<nowiki>Tag.objects.values_list('name', flat=True)</nowiki>}} #產出字串的queryset
*記得保存新生的row
*{{code|djt.tags.add(data)}} #加入資料




</pre>
[[category:資訊]]
[[category:資訊]]