首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django模板,单击按钮在类内调用函数。

Django模板,单击按钮在类内调用函数。
EN

Stack Overflow用户
提问于 2016-01-04 11:31:53
回答 2查看 1.9K关注 0票数 1

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

代码语言:javascript
复制
def index(request):
#return HttpResponse ('Hello world!')  
return render(request, "Articol/index.html", {'WallStreet': WallStreet.objects.all(), 'Add': CreateWallStreetArticle()})

因此,在模板上,这是按钮的代码:

代码语言:javascript
复制
<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>

因此,正如您可以看到函数在类CreateWallStreetArticle()中使用我所拥有的代码,当我按下按钮时,它不会发生任何事情,而且我无法理解调用函数AddArticle()的方法。

如果在视图中更改返回呈现如下:

代码语言:javascript
复制
return render(request, "Articol/index.html", {'WallStreet': WallStreet.objects.all(), **'Add': CreateWallStreetArticle().AddArticle()**})

它调用函数,但不按一下按钮,当我重新加载页面时,它会自动调用它,我不想这样:-)

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-04 14:28:39

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

我建议您阅读使用Django ajax教程的探戈,它提供了使用ajax的基本示例和django usign按钮示例。如果你有任何问题,可以随便问。

票数 0
EN

Stack Overflow用户

发布于 2016-01-04 11:39:40

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

1)您错误地调用了AddArticle函数--它应该是{{ Add }} (因为它在字典中,所以将get CreateWallStreetArticle() )。

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

注意:由于几个原因,不推荐这种方法。一个原因是安全,另一个原因是逻辑分离。当然,假设可能的话,最好只将{{ Add }}直接包含在模板中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34590184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档