在没有DoesNotExist错误的情况下在django中获取相关值的最佳实践

Ada*_*son 2 django django-models

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

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

class Post(models.Model):
    blog = models.ForeignKey(Blog)
Run Code Online (Sandbox Code Playgroud)

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

Blog.objects.get(author='John').post_set
Run Code Online (Sandbox Code Playgroud)

如果有一个包含author ='John'但没有帖子的博客,则会引发一个DoesNotExist异常.这是什么最好的解决方案?我可以尝试一下:除了:在前端,一个自定义管理器方法,或者有没有办法通常覆盖Django返回一个空集.就我的目的而言,DoNot Exist没用.

或者,整个问题可以回避:

Blog.objects.select_related('post').get(author='John').post_set.values()
Run Code Online (Sandbox Code Playgroud)

Ben*_*mes 10

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