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")
還是讓我給它一個鏡頭。 –
工程,雖然不得不作出幾個中等大小的變化。 –