Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Django模板,单击按钮调用类内的函数_Javascript_Jquery_Python_Django_Python 3.x - Fatal编程技术网

Javascript Django模板,单击按钮调用类内的函数

Javascript Django模板,单击按钮调用类内的函数,javascript,jquery,python,django,python-3.x,Javascript,Jquery,Python,Django,Python 3.x,我试图在一个类中调用一个函数,当用户单击一个按钮时,我就拥有了这个类。 我的看法是: def index(request): #return HttpResponse ('Hello world!') return render(request, "Articol/index.html", {'WallStreet': WallStreet.objects.all(), 'Add': CreateWallStreetArticle()}) 在模板上,这是按钮的代码: <button

我试图在一个类中调用一个函数,当用户单击一个按钮时,我就拥有了这个类。 我的看法是:

def index(request):
#return HttpResponse ('Hello world!')  
return render(request, "Articol/index.html", {'WallStreet': WallStreet.objects.all(), 'Add': CreateWallStreetArticle()})
在模板上,这是按钮的代码:

<button id="about-btn"> Click to add new articles to the database</button>

<script>
        $(document).ready( function() {

            $("#about-btn").click( function(event) {
                {{ Add.AddArticle() }};
            });
        });
</script>
它调用函数,但不是在单击按钮时调用,它会在我重新加载页面时自动调用,我不希望这样:-)


谢谢大家!

假设
索引
视图中有一些JS代码,您需要做两件事:

1) 您错误地调用了AddArticle函数-它应该是
{{Add}
(这将
获取
CreateWallStreetAttribute()
,因为它在字典中)

2) 您需要将代码标记为对Django安全的代码,以便不转义JS:您可以通过将
{{Add}}
设置为
{%autoescape off%}{{Add}}{%endautoescape%}
来实现这一点


注:由于以下几个原因,不建议使用此方法。一个原因是安全性,另一个原因是逻辑分离。最好是直接在模板中包含
{{{Add}
中的任何内容,当然这是可能的。

假设
索引
视图中有一些JS代码,您需要做两件事:

1) 您错误地调用了AddArticle函数-它应该是
{{Add}
(这将
获取
CreateWallStreetAttribute()
,因为它在字典中)

2) 您需要将代码标记为对Django安全的代码,以便不转义JS:您可以通过将
{{Add}}
设置为
{%autoescape off%}{{Add}}{%endautoescape%}
来实现这一点


注:由于以下几个原因,不建议使用此方法。一个原因是安全性,另一个原因是逻辑分离。最好是直接在模板中包含
{{{Add}}
中的内容,当然这是可能的。

我认为正确的方法是使用Ajax。Ajax代表异步Javascript,这正是我们所需要的。您需要做的是将一个js函数绑定到您的按钮,该按钮将向您提供的url发送一个ajax请求,该url将映射到您的
urls.py
,并调用您需要的视图。在该视图中,您可以运行所需的任何python代码,并返回包含所需数据的json响应


我建议您阅读,它提供了使用ajax的基本示例和类似django usign的按钮示例。如果您有任何问题,请随时提问。

我认为正确的方法是使用Ajax。Ajax代表异步Javascript,这正是我们所需要的。您需要做的是将一个js函数绑定到您的按钮,该按钮将向您提供的url发送一个ajax请求,该url将映射到您的
urls.py
,并调用您需要的视图。在该视图中,您可以运行所需的任何python代码,并返回包含所需数据的json响应


我建议您阅读,它提供了使用ajax的基本示例和类似django usign的按钮示例。如果您有任何问题,请随时提问。

是否真的必须这样做?你对ajax有兴趣吗?我听说过,但我不知道。你能再详细一点吗?我如何使用ajax来调用Django函数?真的必须这样做吗?你对ajax有兴趣吗?我听说过,但我不知道。你能再详细一点吗?如何使用ajax调用Django函数?Well Add指的是CreateWallStreetAttribute()。这是一个包含AddArticle()的类,我想使用它。我认为不可能像你说的那样。CreateWallStreetAttribute()应该是JS函数还是Python函数?CreateWallStreetAttribute()是Python类。在这里查看整个类和函数AddArticle(),我想通过单击按钮调用它:Well Add指的是CreateWallStreetArticle()。这是一个包含AddArticle()的类,我想使用它。我认为不可能像你说的那样。CreateWallStreetAttribute()应该是JS函数还是Python函数?CreateWallStreetAttribute()是Python类。在这里查看整个类和函数AddArticle(),我想通过单击按钮调用它:
return render(request, "Articol/index.html", {'WallStreet': WallStreet.objects.all(), **'Add': CreateWallStreetArticle().AddArticle()**})