0
所以我目前有我的喜歡的應用程序處理朋友的請求,它工作正常,但我的通知似乎並沒有工作。無論何時,無論天氣如何,他們都喜歡其他人,他們只會發送兩個notify.send中的第二個。朋友要求和確認問題
繼承人我的代碼:
View.py
def like_user(request, id):
pending_like = get_object_or_404(User, id=id)
user_like, created = UserLike.objects.get_or_create(user=request.user)
user = get_object_or_404(User, username=request.user)
liked_user, like_user_created = UserLike.objects.get_or_create(user=user)
if pending_like in user_like.liked_users.all():
user_like.liked_users.remove(pending_like)
elif request.user in liked_user.liked_users.all():
user_like.liked_users.add(pending_like)
notify.send(request.user,
#action=request.user.profile,
target=request.user.profile,
recipient=pending_like,
verb='sent you a friend request view'),
else:
user_like.liked_users.add(pending_like)
notify.send(request.user,
#action=request.user.profile,
target=request.user.profile,
recipient=pending_like,
verb='accepted your friend request view')
return redirect("profile", username=pending_like.username)
models.py
class UserLikeManager(models.Manager):
def get_all_mutual_likes(self, user, number):
try:
qs = user.liker.liked_users.all().order_by("?")
except:
return []
mutual_users = [][:number]
for other_user in qs:
try:
if other_user.liker.get_mutual_like(user):
mutual_users.append(other_user)
except:
pass
return mutual_users
class UserLike(models.Model):
user = models.OneToOneField(User, related_name='liker')
liked_users = models.ManyToManyField(User, related_name='liked_users', blank=True)
objects = UserLikeManager()
def __unicode__(self):
return self.user.username
def get_mutual_like(self, user_b):
i_like = False
you_like = False
if user_b in self.liked_users.all():
i_like = True
liked_user, created = UserLike.objects.get_or_create(user=user_b)
if self.user in liked_user.liked_users.all():
you_like = True
if you_like and i_like:
return True
else:
return False
,你可以在我的views.py看到我有一個if語句有一個ELIF,然而,它似乎從來沒有拿起這個elif並直接去其他人,所以在我的通知我總是得到'接受你的朋友請求視圖'的消息。我似乎無法解決這個問題,如果任何人都可以看到缺點,請讓我知道。
當我在我的個人資料應用程序中使用它來顯示按鈕顯示,確認好友請求它似乎工作。這裏是我的配置文件代碼:
view.py
def profile_view(request, username):
user = get_object_or_404(User, username=username)
liked_user, like_user_created = UserLike.objects.get_or_create(user=user)
do_they_like = False
if request.user in liked_user.liked_users.all():
do_they_like = True
context = {
"do_they_like": do_they_like
}
return render(request, "profiles/profile_view.html", context)
感謝
嗨,謝謝你的評論,但它並沒有' t似乎工作,ive添加了一些代碼,上面顯示了一個when_user.liked_users.all()時的實例:似乎工作。 – caldf