html - Django - 跟随按钮功能不起作用
问题描述
我正在尝试创建一个类似于社交网站的项目,用户可以在其中互相关注。某人个人资料上的关注按钮将允许您自己的个人资料关注该用户。
目前,当我单击个人资料上的关注按钮时,没有任何反应。也没有错误。我很纠结该去哪里。任何帮助都非常感谢。
urls.py 的相关部分:
path("fol/<str:username>", views.fol, name="fol"),
path("following_list/<str:username>", views.following_list,
name='following_list'),
path("profile/<str:username>", views.profile, name="profile"),
views.py - 用于以下功能:
def fol(request, username):
if request.method == 'GET':
currentuser = request.user
profileuser = get_object_or_404(User, username=username)
posts = Post.objects.filter(user=profileuser).order_by('id').reverse()
follower = Follow.objects.filter(target=profileuser)
following = Follow.objects.filter(follower=profileuser)
following_each_other = Follow.objects.filter(follower=currentuser,
target=profileuser)
totalfollower = len(follower)
totalfollowing = len(following)
paginator = Paginator(posts, 10)
page_number = request.GET.get('page')
page_obj = paginator.get_page(page_number)
context = {
'posts': posts.count(),
'profileuser': profileuser,
'follower': follower,
'totalfollower': totalfollower,
'following': following,
'totalfollowing': totalfollowing,
'followingEachOther': following_each_other
}
return render(request, "network/profile.html", context)
else:
currentuser = request.user
profileuser = get_object_or_404(User, username=username)
posts = Post.objects.filter(user=profileuser).order_by('id').reverse()
following_each_other = Follow.objects.filter(follower=currentuser,
target=profileuser)
paginator = Paginator(posts, 10)
page_number = request.GET.get('page')
page_obj = paginator.get_page(page_number)
if not following_each_other:
f = Follow.objects.create(target=profileuser, follower=currentuser)
f.save()
follower = Follow.objects.filter(target=profileuser)
following = Follow.objects.filter(follower=profileuser)
following_each_other = Follow.objects.filter(follower=request.user,
target=profileuser)
totalfollower = len(follower)
totalfollowing = len(following)
context = {
'posts': posts.count(),
'profileuser': profileuser,
'page_obj': page_obj,
'follower': follower,
'following': following,
'totalfollowing': totalfollowing,
'totalfollower': totalfollower,
'followingEachOther': following_each_other
}
return render(request, "network/profile.html", context)
else:
following_each_other.delete()
follower = Follow.objects.filter(target=profileuser)
following = Follow.objects.filter(follower=profileuser)
totalfollower = len(follower)
totalfollowing = len(following)
context = {
'posts': posts.count(),
'profileuser': profileuser,
'page_obj': page_obj,
'follower': follower,
'following': following,
'totalfollowing': totalfollowing,
'totalfollower': totalfollower,
'followingEachOther': following_each_other
}
return render(request, "network/profile.html", context)
个人资料页面的views.py函数:
def profile(request, username):
if request.method == 'GET':
currentuser = request.user
profileuser = get_object_or_404(User, username=username)
posts =
Post.objects.filter(username=profileuser).order_by('id').reverse()
profile = User.objects.get(username=username)
paginator = Paginator(posts, 10)
page_number = request.GET.get('page', 1)
page_obj = paginator.get_page(page_number)
foo = Follow.objects.filter(target=profileuser)
following = Follow.objects.filter(follower=profileuser)
user1 = profile.username
user2 = currentuser.username
if profile.username == currentuser.username:
return render(request, "profile.html", {
'profile': profile,
'profileuser': profileuser,
'posts': posts,
'user1': user1,
'user2': user2,
'page_obj': page_obj,
})
else:
return render(request, "profile.html", {
'profile': profile,
'profileuser': profileuser,
'posts': posts,
'user1': user1,
'user2': user2,
'page_obj': page_obj,
})
else:
return render(request, "network/index.html")
个人资料页面上的相关 html - 在花括号中没有出现:
This user has {{totalfollower}} followers.
This user is following {{totalfollowing}} accounts.
{% if user1 != user2 %}
<div class="pull-right">
<a href="{% url 'fol' username=profileuser.username %}"></a><input class="btn
btn-primary" type="submit" value="Follow">
</div>
<div class="pull-right">
<input class="btn btn-primary" type="submit" value="Unfollow">
</div>
{% endif %}
解决方案
推荐阅读
- java - 如何在 Android 的 Share-Intent 功能中包含 App Link
- omnet++ - 为什么 DemoBaseApplLayer::myId 在 Veins 版本 4.7.1 和 5.0 中不同?
- regex - 如何替换以模式开头的文本?
- php - 从嵌套数组中获取 2 个值
- excel - 使用 VBA 宏清理数据
- javascript - HIGHCHARTS - 给定一系列带有 UNIX 标记和值对的数据,如何仅显示 xAxis 上第一个点和最后一个点的日期?
- swift - 如何检测 cgRect 中的 cgPath
- angular - FormsModule:如何强制更改值?
- r - 了解 R 中的事务类输出?
- postgresql - postgresql 中索引的影响