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