Class Connect(models.Model):
connection = models.Charfield(max_length=120)
“连接”模型的对象的“连接”字段的值可以为Chat
,Video
或Call
。
以下是我的Visitor
模型,其中connecting_medium
为多对多字段。
Class Visitor(models.Model):
name = models.CharField(max_length=120)
connecting_medium = models.ManyToManyField('Connect')
我知道,如果v
是Visitor
模型的对象,那么下面的代码行将提供此特定访问者v
的连接列表。
connection_list=list(v.connecting_medium.values_list('connection',flat=True))
现在,我的动机是获取所有Visitor
中具有Chat
的{{1}}个对象。我已经编写了以下代码,但似乎不起作用,它引发了以下错误:
未定义名称“ connecting_medium”。
connection_list
P.S:以上代码仅是示例。我不能发布公司项目的源代码。但是情况完全是这样。
答案 0 :(得分:2)
那不是您在Django中编写查询的方式。您需要使用关键字参数。
在这种情况下,请使用双下划线语法遍历关系:
Visitor.objects.filter(connecting_medium__connection='Chat')
答案 1 :(得分:1)
以下内容使用连接聊天的连接检索所有访问者对象:
Visitor.objects.filter(connecting_medium____connection='Chat')
Django提供了一种强大且直观的方式来“跟踪”查找中的关系... source。