什么是验证如果Django视图存在的对象,而不返回404的正确方法?

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

  •  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: except:块和其他时间的单行exists()使得代码更清楚地看......一切都取决于你的应用程序逻辑。

listing = RealEstateListing.objects.filter(slug_url=slug).first() 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top