【问题标题】:fetching multiple rows from database in django?从 django 的数据库中获取多行?
【发布时间】:2013-01-12 19:29:20
【问题描述】:

我必须根据某些条件从数据库中获取多行。数据库中可能有一行用于匹配查询或多行。我可以将 get() 用于一行,但它不会获取多行。

这是我的代码:

value=table.objects.get(col_name=1) 然后我可以以value.col 的身份访问其数据,但正如我所说,如果此查询返回多于一行,它会给我错误。

我也尝试过 filter() ,value=table.objects.filter(col_name=1),但我无法以value.col 访问其数据。

所以请建议我如何从数据库中获取多行并逐一访问这些行。

谢谢!!

【问题讨论】:

  • 如果我使用过滤器,我认为我必须使用 for 循环来访问数据,我是对的吗??

标签: python database django django-views


【解决方案1】:
value=table.objects.filter(col_name=1)

将返回一个“django.db.models.query.QuerySet”类型,可以使用“for”循环进行迭代

【讨论】:

    【解决方案2】:
    values = table.objects.filter(col_name=1)
    for value in values.all():
        # Do something with value.col
    

    【讨论】:

    • 你能告诉我一件事吗.....我已经从更新功能更新了一些字段,它成功更新了数据库,我可以在后端看到更新的字段,但从管理仪表板它显示了我以前的值没有更新值,知道为什么吗??
    • 您的 django 管理员可能正在缓存 - 结帐 docs.djangoproject.com/en/dev/topics/cache 并尝试在您的 settings.py 中关闭缓存以查看它是否正确更新。
    • 它不起作用......我已经通过处理程序更新了数据库......这是不是这个原因??
    • 如果没有更多信息,我很难诊断出问题。对于这个新问题,最好在 StackOverflow 上提出一个更详细的新问题。
    【解决方案3】:

    是的,您必须遍历查询集中的项目:

    for item in value:
        item.col
    

    【讨论】:

      猜你喜欢
      • 2022-01-10
      • 2015-12-13
      • 1970-01-01
      • 1970-01-01
      • 2020-10-31
      • 2023-04-09
      • 2021-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多