javascript onclick函数在django模板中不起作用(最明显的问题是js代码,我已经验证了django的正确性)
我想做的是创建一个类似Instagram心脏的按钮。当单击like按钮时,页面不能重新加载,它必须简单地用指定的颜色填充。这是我在页面中呈现按钮的方式:javascript onclick函数在django模板中不起作用(最明显的问题是js代码,我已经验证了django的正确性),javascript,html,django,Javascript,Html,Django,我想做的是创建一个类似Instagram心脏的按钮。当单击like按钮时,页面不能重新加载,它必须简单地用指定的颜色填充。这是我在页面中呈现按钮的方式: <a href="#" onclick= "favPost('{% url 'events:post_unfavorite' post.id %}', {{ post.id }} );return false;"
<a href="#" onclick=
"favPost('{% url 'events:post_unfavorite' post.id %}', {{ post.id }} );return false;"
{% if post.id not in favorites %} style="display: none;" {% endif %}
id="favorite_star_{{post.id}}">
<span class="fa-stack" style="vertical-align: middle;">
<i class="fa fa-star fa-stack-1x" style="color: yello;"></i>
<i class="fa fa-star-o fa-stack-1x"></i>
</span>
</a>
<!-- the second href -->
<a href="#" onclick=
"favPost('{% url 'events:post_favorite' post.id %}', {{ post.id }} );return false;"
{% if post.id in favorites %} style="display: none;" {% endif %}
id="unfavorite_star_{{post.id}}">
<span class="fa-stack" style="vertical-align: middle;">
<i class="fa fa-star fa-stack-1x" style="display: none; color: yello;"></i>
<i class="fa fa-star-o fa-stack-1x"></i>
</span>
</a>
问题是,当我单击渲染的星形时,什么也没有发生,并且我在浏览器控制台中出现以下错误:
未捕获引用错误:未定义favPost
有人能帮我吗?
谢谢听起来,无论您在哪里定义JS方法
favPost
都没有包含在使用该方法的视图渲染中。确保在该视图中包含应用程序JS。能否显示javascript代码以及如何/在何处将其包含在html模板中?@name andy我解决了这个问题
@login_required
@csrf_exempt
def AddFavoriteView(request, pk):
if request.method == "POST":
print("Add PK",pk)
t = get_object_or_404(Post, id=pk)
t.num_likes = t.num_likes + 1
fav = Fav(user=request.user, post=t)
try:
fav.save() # In case of duplicate key
except Post.DoesNotExist:
pass
return HttpResponse()
@login_required
@csrf_exempt
def DeleteFavoriteView(request, pk):
if request.method == "POST":
print("Delete PK",pk)
t = get_object_or_404(Post, id=pk)
t.num_likes = t.num_likes - 1
try:
fav = Fav.objects.get(user=request.user, post=t).delete()
except Post.DoesNotExist:
pass
return HttpResponse()