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 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>
通过这样做,您可以检查页面以查看数据是否将正确传递.您可能必须通过像escapejs
或safe
这样的过滤器传递数据.
或者你也可以这样做
{% 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>
这种方法的问题是变量的范围,因为您可能不希望在全局范围内声明事物,因此可以将其视为一种简单的方法,但不一定是最佳解决方案.
总结以上是内存溢出为你收集整理的Django的javascript模板标签全部内容,希望文章能够帮你解决Django的javascript模板标签所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)