0
我读给予好评/ downvote以下列方式:无法从Django的模板访问给予好评/ downvote输入Django模板
<form method="POST" action="{% url 'vote' %}" class="vote_form">
{% csrf_token %}
<input type="hidden" id="id_value" name="value" class="hidden_id" value="{{ btn1.value }}" />
<button type="input" name="btn1" value="1">upvote</button>
<button type="input" name="btn1" value="-1">downvote</button>
</form>
注:被表决对象和USER_ID创建投票也通过使用类似的“隐藏”输入标签我省略了以上复制
看看我的输入标签。 value="{{ btn1.value }}"
应该引用被点击的相关按钮,将其值传递给视图,然后处理净投票。
但我的语法/逻辑不起作用。你认为我做错了什么?请指教。
其次,我不喜欢在我的模板中分配一个整数值来upvote/downvote 。有一个更安全的方法来做到这一点。在这方面任何protips都是值得欢迎的!
p.s.仅供参考,我的观点如下:
class VoteFormView(FormView):
form_class = VoteForm
def form_valid(self, form):
link = get_object_or_404(Link, pk=form.data["link"])
user = self.request.user
val= form.data["value"]
prev_votes = Vote.objects.filter(voter=user, link=link)
has_voted = (prev_votes.count() > 0)
if not has_voted:
Vote.objects.create(voter=user, link=link, value=val)
else:
prev_votes[0].delete()
return redirect("home")
还是让我给它一个镜头。 –
工程,虽然不得不作出几个中等大小的变化。 –