Как передать переменную в пользовательский загрузчик шаблонов Django? - PullRequest
0 голосов
/ 04 февраля 2012

У меня есть шаблоны в словаре, и я бы хотел, чтобы мой загрузчик шаблонов их получил.Но так как он создается с помощью кода 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

1 Ответ

0 голосов
/ 04 февраля 2012

В чем проблема? Это должно работать.

Просто определите 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...