什么是验证如果Django视图存在的对象,而不返回404的正确方法?
-
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()
不隶属于 StackOverflow