猿问

如何在 django 中重定向时发送字典或数据?

我制作了一个网络应用程序,我可以在其中发布图像,其他用户可以点赞。但是,如果他已经喜欢该帖子,那么它将是红色的,并且再次单击它将与该帖子不同,如果用户不喜欢该帖子,那么它将是绿色的,并且单击该按钮将导致喜欢该帖子。我可以喜欢和不喜欢功能,但我无法根据逻辑更改按钮颜色。在 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 %}

视图.py


def 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))


哆啦的时光机
浏览 139回答 2
2回答

潇潇雨雨

做这样的事情if voter_id.exists():&nbsp; &nbsp; # Delete the voter object or remove vote&nbsp; &nbsp; messages.info("disliked")else:&nbsp; &nbsp; # Create voter object or add vote&nbsp; &nbsp; messages.info("liked")return redirect("YOUR_REDIRECT_URL")

暮色呼如

当你点击运行function likeAndDislike(this) {&nbsp; &nbsp; if (this.className.includes("btn-like")){&nbsp; &nbsp; &nbsp; &nbsp; this.classList.add("btn-dislike");&nbsp; &nbsp; &nbsp; &nbsp; this.classList.remove("btn-like");&nbsp; &nbsp; }&nbsp; &nbsp; if (this.className.includes("btn-dislike")) {&nbsp; &nbsp; &nbsp; &nbsp; this.classList.add("btn-like");&nbsp; &nbsp; &nbsp; &nbsp; this.classList.remove("btn-dislike");&nbsp; &nbsp; }}
随时随地看视频慕课网APP

相关分类

Python
我要回答