2
私はアイテムが存在しない場合は、単純に例外を発生させることなく、次の操作を実行したいと思います:例外を発生させずに単一のオブジェクトを取得するためのショートカット?
User.objects.get(email_address = email_address)
はジャンゴで、このためのショートカットはありますか?私は、ユーザーが特定の電子メールアドレスを持っているかどうかをチェックしたいだけです。
私はアイテムが存在しない場合は、単純に例外を発生させることなく、次の操作を実行したいと思います:例外を発生させずに単一のオブジェクトを取得するためのショートカット?
User.objects.get(email_address = email_address)
はジャンゴで、このためのショートカットはありますか?私は、ユーザーが特定の電子メールアドレスを持っているかどうかをチェックしたいだけです。
クエリセットメソッドexists()
を使用できます。 django docsから
:
(存在)
ない場合はクエリセットはすべての結果が含まれている場合はtrueを返し、偽。あなたのケースでは
:このメールアドレスを持つ複数のユーザーがあった場合get()
はUser.MultipleObjectsTeturned
例外を引き上げる一方
User.objects.filter(email_address=email_address).exists()
、exists
はまだ、True
を返します。
実際に存在する可能性のあるアイテムまたは存在しないアイテムを取得する場合は、この['get_or_none()'パターン]を試してください(http://stackoverflow.com/questions/1512059/django-get-an-object- form-the-db-or-none-if-nothing-matchesと一致しています)。 – jathanism
[django_annoying](https://bitbucket.org/offline/django-annoying/wiki/Home)を試してみてください。get_object_or_Noneとその他の楽しい機能をサポートしています... – jawache
@jawacheありがとうございます、それは素晴らしいライブラリのようです。 Djangoの次のリリースでは、特に 'get_object_or_None'のようなショートカットを含める必要があります。 –