我希望能够能够从我的模型“ModelLog”以下列方式运行的函数:蟒蛇改写初始化
ModelLog.create_log(user, obj1, obj2)
,而不是创建第一和空对象与它一起通过。 现在我想通过重写init可以做到这一点,但公平地说,这对我来说是全新的。
我班ModelLog有这个方法:
class ModelLog(models.Model):
def create_log(user_obj, old_obj, new_obj):
""" Create a log about the changes of an object"""
"Some Code"
当我用ModelLog.create_log(用户,OBJ1,OBJ2)来执行我的create_log方法我收到以下错误:
类型错误:未绑定的方法create_log()必须与ModelLog实例作为第一个参数来调用(得到用户实例,而不是)
现在我想我需要做的是这样的:
def __init__(self, user_obj, old_obj, new_obj):
self.user_obj = user_obj
self.old_obj = old_obj
self.new_obj = new_obj
但很明显,这不是工作,有人能让我在正确的方向,并帮助我在这里?
我字面上试图了解你的意图5分钟。但我不能说我明白了。 – scriptmonster
您的ModelLog是否继承自任何类? –
对不起,我说我真的不知道init是如何工作的。 。我想它是的,即时通讯使用djangoframework,所以我的模型是类ModelLog(模型。Model): –