Was ist der richtige Weg zu überprüfen, ob ein Objekt in einer ohne 404 Rückkehr django Ansicht existiert?

StackOverflow https://stackoverflow.com/questions/639836

  •  11-07-2019
  •  | 
  •  

Frage

ich brauche, um zu überprüfen, ob ein Objekt vorhanden ist, und schicken Sie das Objekt, dann auf der Basis dieser Aktionen durchführen. Was ist der richtige Weg, es zu tun, ohne eine 404-Rückkehr?

try:
    listing = RealEstateListing.objects.get(slug_url = slug)
except:
    listing = None

if listing:
War es hilfreich?

Lösung

Ich würde nicht den 404-Wrapper verwenden, wenn Sie keine 404. gegeben werden, dass der Missbrauch von Absicht ist. Nur fängt den doesNotExist statt.

try:
    listing = RealEstateListing.objects.get(slug_url=slug)
except RealEstateListing.DoesNotExist:
    listing = None

Andere Tipps

Sie können auch tun:

if not RealEstateListing.objects.filter(slug_url=slug).exists():
    # do stuff...

Manchmal ist es klar try: except: Block und andere Zeiten Einzeiler exists() macht den Code suchen klarer ... alles hängt von der Anwendungslogik zu verwenden.

listing = RealEstateListing.objects.filter(slug_url=slug).first() 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top