在 django 中获取相关值而不出现DoesNotExist 错误的最佳实践

2024-03-24

如果我在 Django 中有两个模型:

class Blog(models.Model):
    author = models.CharField()

class Post(models.Model):
    blog = models.ForeignKey(Blog)

我想获取给定博客的所有帖子:

Blog.objects.get(author='John').post_set

如果有一个博客author='John'但不是帖子,aDoesNotExist引发异常。对此最好的解决方案是什么?

我可以做一个try..except在前端,或自定义管理器方法。有没有一种方法可以覆盖 Django 以返回空集?为了我的目的,DoesNotExist没有用。

或者,可以通过以下方式回避整个问题:

Blog.objects.select_related('post').get(author='John').post_set.values()

您还可以通过使用来避免该错误Post.objects.filter(blog__author='John')

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 django 中获取相关值而不出现DoesNotExist 错误的最佳实践 的相关文章

随机推荐