代码之家  ›  专栏  ›  技术社区  ›  Adam Nelson

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

  •  2
  • Adam Nelson  · 技术社区  · 16 年前

    如果我有两款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

    我能做一件事 try..except 在前端,或自定义管理器方法。有没有一种方法可以覆盖Django以返回一个空集?就我而言, 没有用。

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

    Blog.objects.select_related('post').get(author='John').post_set.values()
    
    1 回复  |  直到 6 年前
        1
  •  10
  •   Ben James    16 年前

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

    推荐文章