2012-08-06 68 views
-1

这是一个多对多的请求,但我的“related_name”使查询错误..用封related_name Django的查询

型号:

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 

OT她尝试:

editedcourse.subscribed.clear() 

related_name块的访问subscribed场.. acourse.subscribed不再被定义..

我想用两个方向,但我使用__set曾与查询问题。

我该怎么办我的要求其实是有可能全部逆转与__set一个M2M关系的时间?

+1

它是如何‘’怎么是查询‘阻止错误的’什么?“的问题”你是否也有请具体 – 2012-08-06 11:15:23

+0

对不起,编辑.. – nlassaux 2012-08-06 11:48:08

回答

0

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

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

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

然后你正在做的事情完全错误的方式轮course_list后

编辑。你拥有的查询是“我想寻找谁在一个名为List editedcourse用户‘course_list’我猜你的意思是:

User.objects.filter(course_list=editedcourse) 
+0

第一次尝试:?。我想选择'所有用户subscribed'field我已经定义了一个related_name,所以,我想搜索用户。一个包含 'editedcourse' 一个course_list editedcourse就像是一个查询的结果:'Course.objects.get(ID = XX)' – nlassaux 2012-08-06 12:14:30