404を返さずにdjangoビューにオブジェクトが存在するかどうかを検証する正しい方法は何ですか?
-
11-07-2019 - |
質問
オブジェクトが存在するかどうかを確認し、オブジェクトを返す必要があります。その後、それに基づいてアクションを実行します。 404を返さずにそれを行う正しい方法は何ですか?
try:
listing = RealEstateListing.objects.get(slug_url = slug)
except:
listing = None
if listing:
解決
404が与えられない場合、404ラッパーは使用しません。それは意図の誤用です。代わりにDoesNotExistをキャッチしてください。
try:
listing = RealEstateListing.objects.get(slug_url=slug)
except RealEstateListing.DoesNotExist:
listing = None
他のヒント
次のこともできます。
if not RealEstateListing.objects.filter(slug_url=slug).exists():
# do stuff...
try:を使用する方がより明確な場合があります:例外:
ブロックなど、ワンライナーの exists()
によりコードがより明確になります...すべてはアプリケーションに依存します論理。
listing = RealEstateListing.objects.filter(slug_url=slug).first()
所属していません StackOverflow