什么是正确的方式来validation,如果一个对象存在于Django视图而不返回404?

基本上只是validation一个对象是否存在并返回对象。 然后根据执行的行动。 我想知道什么是正确的方式来做到这一点,而不返回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更清楚:除了block和其他时间单线程存在()使得代码看起来更清晰…都取决于您的应用程序逻辑。

 listing = RealEstateListing.objects.filter(slug_url=slug).first()