带工厂函数的可变分辨率

2024-06-28 20:31:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到了一个有趣/令人沮丧的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。你知道吗

如果我们叫它一次,一切正常,但是当我们叫它两次 (从for循环调用)1。和2。打印报表给我们 新的观点,但3。我们仍然使用第一个值 工厂功能。你知道吗

有什么想法吗?你知道吗


Tags: 代码selfviewreturnmodelsfactory工厂def