1. ホーム
  2. python

[解決済み] Django: DB からオブジェクトを取得し、マッチするものがなければ 'None' を取得する

2022-10-30 04:59:56

質問

データベースからオブジェクトを取得したり、マッチするものがなければ None とするような Django 関数はないでしょうか?

今は、こんなのを使っています。

foo = Foo.objects.filter(bar=baz)
foo = len(foo) > 0 and foo.get() or None

でも、それだとよくわからないし、どこもかしこも雑なんですよね。

どのように解決するのですか?

Djangoでは 1.6 を使用することができます。 first() Querysetメソッド。クエリセットにマッチした最初のオブジェクトを返し、マッチしたオブジェクトがない場合は None を返す。

使用方法

p = Article.objects.order_by('title', 'pub_date').first()