Django的javascript模板标签
发布时间:2020-12-20 11:02:59 所属栏目:Python 来源:网络整理
导读:我的应用程序的urls.py是: from django.urls import pathfrom . import viewsapp_name = 'javascript'urlpatterns = [ path('create_table',views.create_table,name='create_table') 我的views.py是: def create_table(request): row_data = "this is row
我的应用程序的urls.py是:
from django.urls import path from . import views app_name = 'javascript' urlpatterns = [ path('create_table',views.create_table,name='create_table') 我的views.py是: def create_table(request): row_data = "this is row data" context = {'row_data': row_data} return render(request,'javascript/create_table.html',context) 我的create_table.html是: {% load static %} <button id="create_table">Get data</button> <div id="place_for_table"></div></div> <script src="{% static 'javascript/scripts/create_table.js' %}"></script> 我的create_table.js是: function create_table() { document.getElementById("place_for_table").innerHTML = '{{ row_data }}'; } document.getElementById("create_table").onclick = function() { create_table() } 我想要做的是在单击create_table按钮时运行create_table.js脚本,该按钮应该为表div元素显示“this is row data”文本. 但是,显示的是{{row_data)). 我已经阅读了关于在Javascript中使用Django变量的其他类似问题,但根据我的理解,他们都建议我按照我的方式去做,所以我不确定我做错了什么. 解决方法
如果你的模板中有一个元素然后检测到点击,那么为什么不以另一种方式执行它然后将上下文变量传递给JS函数呢?
<button onclick="create_table({{ row_data }})">Click me</button> 通过这样做,您可以检查页面以查看数据是否将正确传递.您可能必须通过像 或者你也可以这样做 {% load static %} <button id="create_table">Get data</button> <div id="place_for_table"></div></div> <script type="text/javascript"> var row_data = "{{ row_data }}"; </script> <script src="{% static 'javascript/scripts/create_table.js' %}"> </script> 这种方法的问题是变量的范围,因为您可能不希望在全局范围内声明事物,因此可以将其视为一种简单的方法,但不一定是最佳解决方案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |