2024-05-17 12:14:36 发布
网友
我目前有一个名为“copyright”(动态版权消息)的函数,我正试图将其包含到我的基本Django模板中,如下所示:
def copyright(): some code some more code print(finaloutput)
我把它放在我的模块里/实用工具.py在我的静态目录中注册了我的资产。在
我希望能够像{copyright}}}一样直接在顶层调用该函数基本.html在我的主模板文件夹。在
我已经尽了一切努力来确保我加载静态文件没有运气。我走错路了吗?在
有几种方法可以实现你的最终目标,但你所做的一切都不会让你达到目标。在
你可以的
{{ view.function_name }}
从我认为你是如何设置的来看,最快的方法可能是在视图中传递一些上下文数据。在
如果使用的是函数视图,则代码可能如下所示:
def my_view(request): def copyright(): return "copyright 2018" return render('my_template.html', {'copyright': copyright})
如果使用的是基于类的泛型视图,只需修改get_context_data。在
get_context_data
不幸的是,你在这里所做的一切都是错误的。在
这与静态文件无关:正如您自己所说,这是一个动态函数,因此从定义上讲不是静态的。无论如何,不能将Python代码放在assets目录中。最后,任何这样的函数都需要返回结果,而不是打印它。在
这里您需要的是一个模板标记,您可以将其放入应用程序的templatetags目录中,然后通过decorator进行注册:
@register.simple_tag def copyright(): some code some more code return finaloutput
然后,在模板中加载标记并将其作为标记而不是变量调用:
见the template tags docs。在
有几种方法可以实现你的最终目标,但你所做的一切都不会让你达到目标。在
你可以的
{{ view.function_name }}
。在从我认为你是如何设置的来看,最快的方法可能是在视图中传递一些上下文数据。在
如果使用的是函数视图,则代码可能如下所示:
如果使用的是基于类的泛型视图,只需修改
^{pr2}$get_context_data
。在不幸的是,你在这里所做的一切都是错误的。在
这与静态文件无关:正如您自己所说,这是一个动态函数,因此从定义上讲不是静态的。无论如何,不能将Python代码放在assets目录中。最后,任何这样的函数都需要返回结果,而不是打印它。在
这里您需要的是一个模板标记,您可以将其放入应用程序的templatetags目录中,然后通过decorator进行注册:
然后,在模板中加载标记并将其作为标记而不是变量调用:
^{pr2}$见the template tags docs。在
相关问题 更多 >
编程相关推荐