【问题标题】:Executing Function in Django Template with button OnClick使用按钮 OnClick 在 Django 模板中执行函数
【发布时间】:2017-05-30 09:32:01
【问题描述】:

这是我Django Templates tag 中的一个过滤器。

@register.filter('saving_bookmarks_db')
def saving_bookmarks_db(news_data,news_source,):
    #this will save the data in db

在我的Django Template 中,我有一个这样的按钮

<button data-toggle="modal" id="myClickButton" href="#dbModal" class="btn btn-info pull-right custom" >Bookmark</button>

这是我的包含命令,它将包含模态 html 并保存也使用标记保存数据

{% include "db_saving.html"  with source=source data=data %}

我想要做的是,这包括命令仅在单击按钮时执行,但在刷新页面时在 django 中,它将所有数据保存在数据库中,而不是当我单击按钮时的数据。

【问题讨论】:

    标签: python django django-templates


    【解决方案1】:

    您不能在模板过滤器中执行此类操作。这将始终在渲染时执行。

    响应用户操作而影响数据库的任何事情都只能发生在通过 URL 访问的视图中。听起来您希望从模板中的 Ajax 函数调用它,而该函数又从您的 onclick 处理程序调用。

    【讨论】:

    • 所以唯一也是最好的解决方案是我使用该按钮调用视图并保存该视图中的数据?
    • 是的,这一直是要做的事情。
    • 如果我想从 django 模板返回字典来查看怎么办?我需要使用像 ajax 这样的额外功能还是可以简单地完成?
    • 对不起,我不明白你的问题。我已经说过你可能应该使用 Ajax,但我不确定你在问什么关于字典的问题。
    • @Rao 没有从模板中“返回”某些东西的东西。如果你想做 Web 开发,你必须了解 HTTP 请求/响应周期,然后了解 Django 的视图和模板如何适应这个周期——然后你就会明白为什么你的概念是“返回一个 dict从模板到视图”完全没有意义;)
    猜你喜欢
    • 1970-01-01
    • 2019-10-27
    • 2020-09-28
    • 2011-11-05
    • 2015-07-01
    • 1970-01-01
    • 2016-04-08
    • 2021-02-07
    • 1970-01-01
    相关资源
    最近更新 更多