我有一个这样的模型:
class Person(models.Model,Subject):
name = ..
类Subject不应该在数据库中,所以它不会从models.Model扩展:
class Subject:
def __init__(self,**kargs):
_observers = []
我的问题是Subject的构造函数从不调用,所以我尝试将其添加到类Person:
def __init__(self):
super(Person,self).__init__()
但现在我有一个错误,说 init 需要1个参数,但是给出了7个,我唯一要做的就是
>>> Person.objects.get(pk=1)
现在我迷路了=你知道人的构造者应该怎么做?
BTW:我正在使用django 1.1和python 2.6
答案 0 :(得分:1)
首先,使用新式类(继承自object
的类)。其次,阅读python的super在多继承场景中的表现:http://fuhm.net/super-harmful/
答案 1 :(得分:0)
您可以使用Django的post_init
signal。它在实例化模型后调用,并传递给创建的实例。