-1

这是一个多对多请求,但我的 '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.

我怎样才能实际完成我的请求,是否有可能一直反转 M2m 关系__set

4

1 回答 1

0

第一个问题与相关名称无关。course_list您只是在尝试在查询中使用它之前没有定义变量。它应该是您想要匹配的课程列表。

在第二次尝试中,您仍然没有解释“related_name阻止访问subscribed”的含义。是什么editedcourse?你从哪里得到它?

评论后编辑

我想使用包含“editedcourse”的 course_list 搜索用户

那么你做事的方式完全错误。您的查询是“我想搜索editedcourse在名为“course_list”的列表中的用户。我猜你的意思是:

User.objects.filter(course_list=editedcourse)
于 2012-08-06T11:59:21.497 回答