Ich muss überprüfen, ob ein Objekt vorhanden ist, und das Objekt zurückgeben, und dann basierend darauf Aktionen ausführen. Was ist der richtige Weg, ohne einen 404 zurückzugeben?
try:
listing = RealEstateListing.objects.get(slug_url = slug)
except:
listing = None
if listing:
Ich würde den 404-Wrapper nicht verwenden, wenn Sie keinen 404 erhalten. Das ist ein Vorsatzmissbrauch. Fangen Sie stattdessen einfach den DoesNotExist.
try:
listing = RealEstateListing.objects.get(slug_url=slug)
except RealEstateListing.DoesNotExist:
listing = None
Sie können auch tun:
if not RealEstateListing.objects.filter(slug_url=slug).exists():
# do stuff...
Manchmal ist es klarer, den Block try: except:
Zu verwenden, und manchmal wird der Code durch einzeiliges exists()
klarer ... alles hängt von Ihrer Anwendungslogik ab.
listing = RealEstateListing.objects.filter(slug_url=slug).first()