【问题标题】:Django, attributes of get and filter queryset methodDjango,get和filter查询集方法的属性
【发布时间】:2020-10-10 13:30:53
【问题描述】:

这可能是重复的问题 (https://stackoverflow.com/a/46439518/10515390) 说,

get() 返回一个匹配查找条件的对象。

filter() 返回一个匹配查找条件的 QuerySet。

考虑以下模型,

  class Entry(models.Model):
    blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
    head = models.CharField(max_length=255)
    authors = models.ManyToManyField(Author)

当我尝试根据特定条目对象查询作者列表时,出现如下错误

为什么过滤器查询集没有属性'authors'?

【问题讨论】:

    标签: django


    【解决方案1】:

    因为它是一组模型,而不是模型(即使其中只有一个模型)。您需要通过迭代或切片将其从查询集中提取出来。

    如果您只对一个实例感兴趣,那么只需坚持使用 objects.get()。 Objects.filter 用于查询多个对象。

    注意:.all() 只是从 db 中获取所有内容,并在已过滤的查询集上使用它只会为您带来相同的结果。

    【讨论】:

    • 我已经遍历了过滤后的查询集并获得了结果。谢谢
    猜你喜欢
    • 2015-10-17
    • 1970-01-01
    • 2021-03-06
    • 2011-03-14
    • 1970-01-01
    • 2019-02-06
    • 1970-01-01
    • 2011-11-29
    • 2023-02-07
    相关资源
    最近更新 更多