Контекст шаблона Django не работает с импортированным классом - PullRequest
2 голосов
/ 24 марта 2012

Я использую шаблоны Django на appengine, и у меня возникла проблема, из-за которой класс, который я импортирую из другого пакета, не был правильно сделан доступным для контекста шаблона.Контекст задается в коде, но после визуализации в шаблоне он пуст.

В общем, это код.Prop1 недоступен в шаблоне в первом примере ниже, но во втором.MyClass идентичен в обоих случаях.

Это не работает:

from module import MyClass
context = MyClass()
self.response.out.write(template.render(path, context))

Это делает:

class MyClass(object):
    def __init__(self):
        self.prop1 = "prop1"

context = MyClass()
self.response.out.write(template.render(path, context))

Если я регистрирую контекст в приведенном выше коде, я получаю:

<module.MyClass object at 0x107b1e450>

, когда он импортирован, и:

<__main__.MyClass object at 0x103759390>

, когда он определен в том же файле.

Любые подсказки относительно того, что может вызвать такое поведение

1 Ответ

0 голосов
/ 25 марта 2012

Если вам нужен собственный класс контекста, он должен расширить BaseContext в Django. В противном случае у него не будет стандартного поведения по умолчанию.

from django.template import BaseContext

class MyClass(BaseContext):
    # Your stuff here
    pass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...