Python 如何根据用户输入更改按钮?
我正在实现一个名为django购物卡的pypi包,这样用户就可以看到他们保存的帖子。 我的问题是,如果帖子已经被添加,我不能让按钮显示Remove Post而不是Add to Card。我试图创建一个不同的方法来传递已保存的帖子,但这导致了一个错误,因为如果没有for循环,我无法访问购物车的键和值。我是新来的,我将非常感谢任何意见和建议Python 如何根据用户输入更改按钮?,python,django,Python,Django,我正在实现一个名为django购物卡的pypi包,这样用户就可以看到他们保存的帖子。 我的问题是,如果帖子已经被添加,我不能让按钮显示Remove Post而不是Add to Card。我试图创建一个不同的方法来传递已保存的帖子,但这导致了一个错误,因为如果没有for循环,我无法访问购物车的键和值。我是新来的,我将非常感谢任何意见和建议 def add_fav(request, id): cart = Cart(request) post = Auction.objects.ge
def add_fav(request, id):
cart = Cart(request)
post = Auction.objects.get(id=id)
cart.add(product=post)
return redirect("watchlist")
def item_clear(request, id):
cart = Cart(request)
product = Auction.objects.get(id=id)
cart.remove(product)
return redirect("watchlist")
def items_clear(request):
cart = Cart(request)
cart.clear()
return redirect("watchlist")
def get_cart(request):
return render(request, 'auctions/watchlist.html', {'cart': Cart(request)})
listings.html
{% block body %}
{% for auction in object_list %}
<div class="col-md-4">
<div class="card mb-2">
<div class="card-body">
<h5 class="card-title"><a href="{% url 'listing' auction.pk %}">{{ auction.name }}</a></h5>
Price: {{ auction.price }}<br>
<p class="card-text">{{ auction.description|slice:":10" }} ...</p>
{{ auction.author }}
Category: {{ auction.category }}
<hr><img class="card-img-top" src="{{ auction.image.url }}" alt="no" ><br>
{% for key,value in request.session.cart.items|slice:1 %} <br>
{% if value.product_id == auction.id %}
- <a href="{% url 'remove_fav' value.product_id%}">Delete</a>
{% endif %}
{% endfor %}
<a class="btn btn-primary" id="add_card" href="{% url 'add_fav' auction.id %}"
style="margin-top: 10px; ">Add to card</a><br>
</div>
{{ text }}
</div>
</div>
{% endfor %}
{% endblock %}
这很难帮上忙,因为在你的问题中,你说我不能让按钮显示“删除帖子”而不是“添加到卡片”,但你的代码中没有“删除帖子”,所以我不确定你指的确切位置。你有一个带有“Delete”文本的“remove\u fav”url调用,这是你的意思吗?——这是我用来从收藏夹中删除博客文章的代码,它被传递到视图中的item\u clear函数,你得到了什么错误?这更像是一个逻辑错误,我想删除“添加到卡片”按钮,如果用户已通过此按钮将帖子添加到他最喜欢的帖子中,并显示“删除帖子”按钮,而不是“删除帖子”按钮,则您的视图应针对当前用户已经或尚未完成的操作进行逻辑检查,并将上下文中的结果发送到模板;然后,模板所做的只是对上下文中的内容进行条件检查,并根据需要进行分支。我现在没有时间把你的代码改写成这种格式,也许以后会。