オブジェクトが存在するかどうかを確認し、そのオブジェクトを返す必要があります。その後、それに基づいてアクションを実行します。 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: except:
_ブロックを使用する方がより明確な場合もあれば、ワンライナーexists()
によってコードがより明確に見えるようになる場合もあります...すべてはアプリケーションロジックに依存します。
listing = RealEstateListing.objects.filter(slug_url=slug).first()