Как удалить друга из базы данных в таблице самостоятельного соединения? - PullRequest
0 голосов
/ 28 мая 2018

Ниже приведены мои модели.

class User(models.Model):
    name = models.CharField(max_length = 255)
    alias = models.CharField(max_length = 255)
    email = models.CharField(max_length = 255)
    password = models.CharField(max_length = 255)
    confirm_password = models.CharField(max_length = 255)
    birthday = models.DateTimeField(null=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    friend = models.ManyToManyField('self')
    objects = UserManager() 

Следующее работает, чтобы добавить друга.

def add_friend(request, friend_id):
    new_friend = User.objects.get(id=friend_id)
    print(new_friend.name)
    current_user = User.objects.get(id=request.session['user_id'])
    print(current_user.name)
    current_user.friend.add(new_friend)
    current_user.save()
    new_friend.friend.add(current_user)
    return redirect('/friends/')

Однако мне нужна помощь в удалении друга из пользователя.Ниже то, что я пытался, но это не работает.Когда я проверяю sqllite, друзья все еще привязываются к этому пользователю.

def remove_friend(request, friend_id):
    remove_friend = User.objects.get(id=friend_id)
    print(remove_friend.name)
    current_user = User.objects.get(id=request.session['user_id'])
    print(current_user.name)
    current_user.friend.remove(remove_friend)
    current_user.save()
    remove_friend.friend.remove(current_user)
    return redirect('/friends/')
...