Django 如何从自联接表中的数据库中删除好友?
下面是我的模型Django 如何从自联接表中的数据库中删除好友?,django,python-3.x,sqlite,django-orm,Django,Python 3.x,Sqlite,Django Orm,下面是我的模型 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 = mod
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/')
这两种方法都被命名为
add\u friend
,内容几乎相同。你打算在哪里删除该对象?@Selcuk刚刚更新了第二个方法!您只更改了名称,但它仍尝试添加而不是删除。