这是一个多对多请求但我的'related_name'使查询错误..
型号:
class Course(models.Model):
subscribed = models.ManyToManyField(User, related_name='course_list', blank=True, null=True, limit_choices_to={'userprofile__status': 'student'})
我想做什么:
for user in User.objects.filter(editedcourse__in=course_list):
user.course_list.remove(editedcourse)
错误:
global name 'course_list' is not defined
其他尝试:
editedcourse.subscribed.clear()
related_name
阻止访问subscribed
字段.. acourse.subscribed
已不再定义..
我想使用这两个方向,但我使用__set
查询时遇到了问题。
如何实际执行我的请求,是否有可能一直与__set
转换M2m关系?
答案 0 :(得分:0)
第一个问题与相关名称无关。在尝试在查询中使用变量之前,您还没有定义变量course_list
。它应该是您想要匹配的课程列表。
在第二次尝试中,您仍未解释“related_name
阻止访问subscribed
”的含义。什么是editedcourse
?你从哪里得到它?
在评论后修改
我想搜索包含'editedcourse'
的course_list的用户
然后你完全以错误的方式做事。您的查询是“我想搜索名为”course_list“的列表中有editedcourse
的用户。我猜您的意思是:
User.objects.filter(course_list=editedcourse)