我制作了一个网络应用程序,我可以在其中发布图像,其他用户可以点赞。但是,如果他已经喜欢该帖子,那么它将是红色的,并且再次单击它将与该帖子不同,如果用户不喜欢该帖子,那么它将是绿色的,并且单击该按钮将导致喜欢该帖子。我可以喜欢和不喜欢功能,但我无法根据逻辑更改按钮颜色。在 django 中,我们无法在 . 中传递字典redirect('urlname')。那么根据给定的逻辑,有什么方法可以使我的按钮变为绿色或红色?代码它是 HTML 文件{% extends 'navbar-footer.html'%}{% block content %}<style>.btn-like{ color: green;}.btn-dislike{ color: red;}</style><h1>{{button}}</h1><h4>This is item number {{item.id}}</h4><h4>{{ item.title }}</h4><h4>{{ item.body }}</h4><button type="button" class="btn {{button}}" onclick="javascript:{document.getElementById('increase_like').submit()}">Like {{item.likes}}</button><form action="{%url 'increase_like' item.id%}" method="POST" id='increase_like' > {% csrf_token %} <input type="hidden" name="" id=""></form><img src="{{item.image.url}}" alt="">{% for user in voter.voter.all %}<h1>{{user.username}}</h1>{% endfor %}{% endblock %}视图.pydef likes(request, item_id): voter_id = Vote.objects.filter(item_product_id=item_id, voter=request.user) if voter_id.exists(): voter_obj = get_object_or_404(Vote, item_product_id=item_id) voter_obj.voter.remove(request.user) item = get_object_or_404(Item_Product, pk=item_id) item.likes = voter_obj.voter.count() item.save() voter_obj.save() return redirect('/products/item_Products/'+str(item_id)) elif voter_id.exists() == False: voter_obj = get_object_or_404(Vote, item_product_id=item_id) voter_obj.voter.add(request.user) item = get_object_or_404(Item_Product, pk=item_id) vote_count = item.likes item.likes = voter_obj.voter.count() item.save() voter_obj.save() return redirect('/products/item_Products/'+str(item_id))
2 回答
潇潇雨雨
TA贡献1833条经验 获得超4个赞
做这样的事情
if voter_id.exists():
# Delete the voter object or remove vote
messages.info("disliked")
else:
# Create voter object or add vote
messages.info("liked")
return redirect("YOUR_REDIRECT_URL")
暮色呼如
TA贡献1853条经验 获得超9个赞
当你点击运行
function likeAndDislike(this) {
if (this.className.includes("btn-like")){
this.classList.add("btn-dislike");
this.classList.remove("btn-like");
}
if (this.className.includes("btn-dislike")) {
this.classList.add("btn-like");
this.classList.remove("btn-dislike");
}
}
添加回答
举报
0/150
提交
取消