Django 1.6では、クエリーセットの最初の要素を取得するために.first()
を導入しました。 、最初のものはより高く評価方法だろう許しを依頼する神託の方法に続いてObjectDoesNotExistと.filter()。first()を比較し、Noneをチェックする
user_id = 42
obj = User.objects.filter(id=user_id).first()
if not obj:
raise Exception("Invalid user id given")
:
user_id = 42
try:
obj = User.objects.get(id=user_id)
except ObjectDoesNotExist:
raise Exception("Invalid user id given")
と: [Source]
は今2つの要素を取得する方法がありますつかいます。 しかし、2つ目は理解しやすく、1行短くなっています。
1:これら2つのコードスニペットの間には速度に違いはありますか?
Q2:単一のオブジェクトを取得するのに適した方法はどれですか?