【发布时间】:2021-07-10 04:00:06
【问题描述】:
我正在构建一个社交媒体应用程序,并尝试在接受或拒绝后将好友请求存储在数据库中。
我想要做什么:-
当user_1 向user_2 发送好友请求时,它会在管理员中存储sent or received friend requests,直到接受或拒绝。在接受或拒绝后将其从数据库中删除。但我想永久存储请求。所以我可以看到request.user发送或接收的所有请求。
models.py
class FriendRequest(models.Model):
to_user = models.ForeignKey(settings.AUTH_USER_MODEL,related_name='to_user',on_delete=models.CASCADE)
from_user = models.ForeignKey(settings.AUTH_USER_MODEL,related_name='from_user',on_delete=models.CASCADE)
views.py
def send_friend_request(request,user_id):
user = get_object_or_404(User,id=user_id)
frequest, created = FriendRequest.objects.get_or_create(from_user=request.user,to_user=user)
return redirect('friends',user_id=user_id)
def accept_friend_request(request,user_id):
user1 = frequest.to_user
user2 = from_user
from_user = get_object_or_404(User,id=user_id)
frequest = FriendRequest.objects.filter(from_user=from_user,to_user=request.user).first()
user1.profile.friends.add(user2.profile)
user2.profile.friends.add(user1.profile)
if(FriendRequest.objects.filter(from_user=request.user,to_user=from_user).first()):
request_rev = FriendRequest.objects.filter(from_user=request.user,to_user=from_user).first()
request_rev.delete()
frequest.delete()
return redirect('friends',user_id=user_id)
我尝试了什么:-
我也尝试在FriendRequest Model 中添加另一个实例,但它没有保存在管理员中。
我不知道,我该怎么做。
任何帮助将不胜感激。
提前致谢。
【问题讨论】:
标签: python django database django-admin