Django - 自定义字段,使用contrib_to_class中的信号

时间:2013-11-13 15:45:09

标签: django django-models

我有一个扩展TextField的自定义字段。它从模型实例中引用了另一个字段。我试图在模型保存时找到检查引用字段值的正确方法。

我以为我可以使用contrib_to_class函数来发出如下信号:

def contribute_to_class(self, cls, name):
            super(CropField, self).contribute_to_class(cls, name)
            setattr(cls, name, CropFieldCreator(self))

            # Save tags back to the database post-save
            post_save.connect(self.post_save_function, cls)

        def post_save_function(self,  **kwargs):
            instance = kwargs['instance']
            try:
                instance.poster.file
            except:
                instance.cropping = '{}'
                instance.save()

这给出了错误:在保存时我认为比较(运行时错误)超出了最大递归深度。

你认为这是否正确?

1 个答案:

答案 0 :(得分:0)

你在except子句中调用instance.save()。这可能是导致无限递归的原因。