Django的javascript模板标签

Django的javascript模板标签,第1张

概述我的应用程序的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_tab 我的应用程序的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 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>

通过这样做,您可以检查页面以查看数据是否将正确传递.您可能必须通过像escapejssafe这样的过滤器传递数据.

或者你也可以这样做

{% 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模板标签所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1191994.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存