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

时间:2009-12-01 16:19:46

标签: django django-models

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

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

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

1 个答案:

答案 0 :(得分:10)

您还可以使用Post.objects.filter(blog__author='John')

来避免错误