我在字典中有模板,我希望我的模板加载器可以获取它们。但是由于它是由Django代码实例化的,所以我不能在那时将字典传递给它。
将变量传递给模板加载器的正确方法是什么? (字典是动态构建的,因此我无法使用Django设置文件。)
我的加载程序代码,我还不能使用dictionary
:
class Loader(BaseLoader):
is_usable = True
def load_template_source(self, template_name, template_dirs=None):
if template_name in dictionary:
return (dictionary[template_name],template_name)
raise TemplateDoesNotExist("Could not find template '%s'." % template_name)
load_template_source.is_usable = True
答案 0 :(得分:0)
有什么问题?这应该工作。
只需在某处定义dictionary
..
dictionary = {'template_name' : 'template content'}
class Loader(BaseLoader):
is_usable = True
def load_template_source(self, template_name, template_dirs=None):
if template_name in dictionary:
return (dictionary[template_name],template_name)
raise TemplateDoesNotExist("Could not find template '%s'." % template_name)
如果需要是动态的,请使用填充dictionary
。
class Loader(BaseLoader):
is_usable = True
def load_template_source(self, template_name, template_dirs=None):
if template_name in self.get_dictionary():
return (dictionary[template_name],template_name)
raise TemplateDoesNotExist("Could not find template '%s'." % template_name)
def get_dictionary(self):
dynamic = {}
# magically dynamically populate the dictionary
return dynamic