解決できない興味深い/苛立たしい Python の問題が発生しました。次のコードがあります。
def eventtag_with_view_factory(view):
print "==1", view
class Cls(models.EventTag):
# means this class does not make django change the database
class Meta:
proxy = True
print "==2", view
@permalink
def get_absolute_url(self):
print "==3", view
return ("search_query_view", (),
{'query': quote('#') + self.name, 'view': view})
return Cls
これは、異なる絶対 URL を持つ EventTag を返すファクトリ関数です。
これを 1 回呼び出すとすべて正常に動作しますが、2 回呼び出すと (for ループから呼び出されます)、1. と 2. print ステートメントは新しいビューを提供しますが、3. は最初に呼び出された値を使用します。私たちの工場機能。
何か案は?