2012-03-24 8 views
2

私はappengineでDjangoのテンプレートを使用していますが、別のパッケージからインポートしているクラスがテンプレートコンテキストで正しく使用できないという問題があります。コンテキストはコードで設定されますが、テンプレートにレンダリングされると空になります。インポートされたクラスでDjangoのテンプレートコンテキストが動作しない

大まかに言えば、これがコードです。 prop1はテンプレートの最初の例では使用できませんが、2番目の例にあります。 MyClassはどちらの場合も同じです。

これは動作しません:私は上記のコードでコンテキストをログインした場合

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

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

は私が手::

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

これがない

<module.MyClass object at 0x107b1e450> 

それが輸入だとき、および:

<__main__.MyClass object at 0x103759390> 
0同じファイルに定義されている場合は、

となります。

このような現象を引き起こす可能性のある手がかりはありますか?

+0

正しく使用できないとはどういう意味ですか? –

+0

コンテキストがNoneであるか、少なくとも空であると表示されます。 –

+0

問題の原因となっているテンプレートコードの部分を追加できますか? –

答えて

0

カスタムコンテキストクラスが必要な場合は、DjangoのBaseContextを拡張する必要があります。それ以外の場合、通常のコンテキストのデフォルトの動作はありません。

from django.template import BaseContext 

class MyClass(BaseContext): 
    # Your stuff here 
    pass 
関連する問題