我安装了django-vote,它有一个简单的API:
review = ArticleReview.objects.get(pk=1)
# Up vote to the object
review.votes.up(user_id)
# Down vote to the object
review.votes.down(user_id)
我有一个汽车页面,其中包含多个评论,我想投票。我试过了:
<form action="{% url 'reviews:review-vote' review.id %}" method="GET">
<button type="submit" name="vote-up"></button>
<button type="submit" name="vote-down"></button>
</form>
网址:
url(r'^(?P<review_id>d+)/vote/$', views.review_vote, name="review-vote"),
视图:
def review_vote(request, review_id):
if request.GET.get("vote-up"):
review = Review.objects.get(id=review_id)
review.votes.up(request.user.id)
return redirect("car", {"make": review.car.make, "years": review.car.years})
这不会执行投票,也不会重定向到汽车页面。我想在我的模板中实现投票 API,如果可能的话,无需重新加载页面。
任何建议或反馈将受到欢迎和高度赞赏。
谢谢。
您可以检查密钥是否vote-up
或vote-down
request.GET
<form action="{% url 'reviews:review-vote' review.id %}" method="GET">
<button type="submit" name="vote-up"></button>
<button type="submit" name="vote-down"></button>
</form>
并在视图中尝试这个。
def review_vote(request, review_id):
if "vote-up" in request.GET:
review = Review.objects.get(id=review_id)
review.votes.up(request.user.id)
return redirect("car", {"make": review.car.make, "years": review.car.years})