2017-04-07 162 views
0

我有許多列表,其中每個列表包含多個用戶,並且我想從所有列表中刪除某個用戶。遍歷所有對象並刪除id匹配的對象?

我試圖在我的views.py做到這一點,但它不workin,我不知道爲什麼。我開始循環遍歷所有列表,爲每個列表檢查用戶是否屬於該列表,從列表中刪除用戶。否則,只需設置一條消息。這是我的代碼:

def delUserFromList(user_id): 
    user = User.objects.get(pk=user_id) 

    for list_id in List.objects.all() : 
     if user.user_lists.filter(pk=list_id).exists(): 
      list_id.user.remove(user) 
      message = "Success!" 
     else: 
      message = "User does not exist on this list!" 

我在做什麼錯在這裏?是不是對每個列表我檢查用戶是否有該列表,然後刪除?

感謝您的幫助!

編輯: 我在我的views.py文件中丟失了from list.models import List

+0

爲什麼 「JavaScript的」 標籤? – nnnnnn

+0

嘗試更改'if user.user_lists.filter(pk = list_id).exists():'如果user.user_lists.filter(pk = list_id.pk).exists():'。 – nick

+0

@nick我只是想通了,問題是我沒有導入列表模型在我的views.py :(。謝謝你的幫助! – user2573690

回答

0

基於this comment

def del_user_from_lists(user): 
    user.user_lists.through.objects.filter(user_id=user.pk).delete()