我有三个示范班:
django.contrib.auth.models.User
,引用为User
mysite.models.Profile
,引用为Profile
mysite.models.Subscriber
,引用为Subscriber
Profile
以文档中的well described的方式从User
继承,作为向{
虽然Profile
和{save()
方法一起使用,以便代码可以按照DRY重用。现在,如果这两个类都是普通模型类,那就很简单了:
class BaseProfile(models.Model):
key = models.PositiveIntegerField(primary_key=True)
activated = models.BooleanField(default=False)
...
class Meta:
abstract = True
def save():
...
class Profile(BaseProfile):
...
class Subscriber(BaseProfile):
...
然而,Profile已经使用了多表继承。我在想一个类似的方法:
^{pr2}$有可能吗?如果是这样,那么在我的例子中需要什么样的继承顺序,以便以正确的方式调用模型字段和save()
方法?两个模型类的Meta不会发生冲突吗?在
链接到的文档没有描述通过多表继承从用户继承。它解释了你可以使用一个OneToOneField链接一个类似“profile”的对象。尝试:
不过,我想你其实并不希望blank=True和null=True。在
这种方法确实意味着您的用户对象很可能没有与其对应的概要文件对象相同的主键,但这对您来说是可以的。在
相关问题 更多 >
编程相关推荐