当前位置: 首页 > 知识库问答 >
问题:

Django许多查询显示无和/或不成功

谭思博
2023-03-14

我在查询多对多关系中的项目列表时遇到问题。下面是我试图查询的模型。这是一个模型,表示一个工人选择一个“开口”,而许多工人可以选择相同的“开口”。我正在尝试选择已选择“空缺”的员工列表,但未成功。

class FavOpening(models.Model):
    opening = models.OneToOneField(Openings, blank=True, default=None)
    worker = models.ManyToManyField(Worker, blank=True, default=None)

    def __unicode__(self):
        return str(self.opening)

这是非常奇怪的,因为我在下面尝试了基于所选工人(id-31)的开口类型,它可以工作,工人选择的开口将打印出来。

employee = get_object_or_404(Worker, id=31)
print employee.favopening_set.all()

但是,当我用另一种方法让工人进入许多人使用下面的工具时,它不起作用。表示它没有属性“favopening_set”

openingobj = get_object_or_404(Openings, id=1)
print openingobj.favopening_set.all()

我还尝试执行以下操作,以获取基于开口(id=1)的工作人员列表,但没有得到结果-显示workers.Worker.None,这是不正确的,因为我至少有一名工作人员选择了此开口。(我签入了管理员)

openingobj = get_object_or_404(Openings, id=1)
print openingobj.favopening.worker

最后,根据一些研究,我尝试了以下方法,即使用预回迁来获取一组内容-Django ORM中与select_相关和与prefetch_相关的内容之间有什么区别?但它指出,无法通过实例访问管理器。

openingobj = get_object_or_404(Openings, id=1)
openingobj.objects.prefetch_related('favopening_set').all()

共有1个答案

艾奕
2023-03-14

编辑回复以考虑评论中的反馈

因此,您希望获得所有选择了开口的工作人员的查询集。下面的代码有帮助吗?

  openingobj = get_object_or_404(Openings, id=1)
  workers_queryset = opening.favopening.worker.all()

我认为,把“工人”改名为“工人”可能是个好主意。

 类似资料:
  • 问题内容: 我在PHP中运行一个脚本,该脚本uisng循环为MySQL创建了一个字符串查询。 执行脚本后,出现以下错误: “您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以在’UPDATE BANNERS SET pos = 1 WHERE BID = 5; UPDATE BANNERS SET pos = 2 WHERE BID = 1’附近使用正确的语法。在第2行 在错误

  • 本文向大家介绍MySQL查询显示多列的排名?,包括了MySQL查询显示多列的排名?的使用技巧和注意事项,需要的朋友参考一下 为此,请使用FIND_IN_SET()方法。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是显示多列等级的查询- 这将产生以下输出,显示基于标记和年龄的排名-

  • 我从django应用程序开始,并尝试在主页中显示图像。但是图像没有被显示。 我的settings.py: 我的网址.py: 我的home.html: 我得到文本显示而不是图像

  • 我得到了以下许多映射。 我想检索所有与Classe2实体有关系的Class1实体,它们的类2Id=1和类2Id=2和类2Id=3。{1,2,3} 或者,要筛选在其class2列表上具有值的Class1实体,请使用值class2Id=1、class2Id=2和class2Id=3的class2实体 例如: 如果在联接表上,我得到了以下值。 对于这个例子,结果将是类1Id为1和6的类1。因为类1实体,

  • 问题内容: 我有那个代码。不幸的是,该错误来自,其中包含 错误提示: 然而,当我把它编译出来。那么,如何在不显示错误的情况下显示? 编辑:也许一个更好的问题是你如何显示的? 问题答案: 你可能无法直接执行此操作。从文档list_display 不支持ManyToManyField字段,因为这将需要为表中的每一行执行一个单独的SQL语句。如果仍然要执行此操作,请为模型提供一个自定义方法,然后将该方法

  • 问题内容: 我试图弄清楚如何在Django中编写“不在”风格的查询。例如,我正在考虑的查询结构将如下所示。 假设模型名为table1和table2,django语法会是什么样? 问题答案: 排除功能的作用类似于你要查询的运算符。该属性告诉查询以返回value_list一级列表。因此,…最后,你IDs将从中获得列表,你将用该列表定义用户中的条件,该条件将被exclude函数拒绝。