2012-08-06 57 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