2012-11-27 33 views
0

我收到了一个我无法解决的有趣/令人沮丧的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 print语句给我们 新的看法(它是从一个for循环调用),但3一个仍然使用我们的 工厂功能调用的第一个值。

任何想法?

+0

我不知道Django的东西,但我不能用非常简单的脚本重现此我写信给你模仿你... – mgilson

回答