2 回答
TA贡献1878条经验 获得超4个赞
不幸的是,您在这里所做的几乎所有事情都是错误的。
这与静态文件无关:正如您自己所说,这是一个动态函数,因此根据定义不是静态的。无论如何,您不能将 Python 代码放在您的资产目录中。最后,任何像这样的函数总是需要返回结果,而不是打印它。
这里你需要的是一个模板标签,你把它放在你的应用程序的 templatetags 目录中并通过装饰器注册:
@register.simple_tag
def copyright():
some code
some more code
return finaloutput
然后,在模板中加载标签并将其称为标签,而不是变量:
{% load utils %} # or whatever you called the file
...
{% copyright %}
请参阅模板标签文档。
TA贡献1848条经验 获得超6个赞
有几种方法可以实现您的最终目标,但是您所做的任何事情都不会使您达到目标。
你可以,
从我认为您设置的方式来看,最快的方法可能是在您的视图中传递一些上下文数据。
如果您使用功能视图,您的代码可能如下所示:
def my_view(request):
def copyright():
return "copyright 2018"
return render('my_template.html', {'copyright': copyright})
如果您使用基于类的通用视图,您可以简单地修改您的get_context_data.
class Home(TemplateView):
def get_context_data(self, *args, **kwargs):
ctx = super(TemplateView, self).get_context_data(self, *args, **kwargs)
ctx['copyright'] = self.copyright()
return ctx
def copyright(self):
return "copyright 2018"
添加回答
举报