通过表格处理投票



我安装了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-upvote-downrequest.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})

最新更新