1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Django メソッド ~アプリ作る時に調べたやつをメモしています~

Last updated at Posted at 2019-09-03

はじめに

DjangoでECサイトを作成する際に知らなかったメソッドを調べた。

調べたメソッド---現在作成途中---

get()

オブジェクトが一つのときに使う。
なので、主にパラメーターにはpkまたはslugが入る。
オブジェクトが無いor複数のオブジェクトが存在するときはエラー

filter()

パラメーターで指定した条件を満たすオブジェクトをリストで返す。
複数のオブジェクトを取ってくることを想定しているので、pkやslugは入らない。

get_object_or_404()

get()と似ている。
存在しない場合は django.http.Http404(例外)を返し、複数存在する場合はMultipleObjectsReturned(これまた例外)を返す。

get_list_or_404()

filter()と似ている。
リストが空の場合、django.http.Http404(例外)を返す。
try,exceptで条件分岐?

c_page = get_object_or_404(Category, slug=c_slug)

疑問

objects = ModelName.objects.filter()
objects = ModelName.objects.all().filter()

の違いは何か?
調べた結果
基本.all()はいらない。
all() が必要となるのはルートクエリセットから全てのオブジェクトを取り出 したい場合だけ。
と言われても…ん?って感じ。
参考URL

reverse()

urlを生成するメソッド

from django.urls import reverse
reverse('shop:products_by_category', args=[self.slug])

の場合はshop/products_by_category/self.slugを生成
公式ドキュメント(まだ和訳されてない)

調べてる途中に見つけた参考になりそうなサイト

Modelからデータを取り出す方法まとめ
Model-データアクセスの基礎
クエリセットとは
データベースの検索






1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?