2013-06-02 40 views
0

说第三方应用程序我有,我想继承一些第三方应用,让我们把它叫做ThirdPartyClass。我想将此子类化以创建一个genereal用户,然后可以灵活地将一般用户分类为更具体的用户。这将是这个样子:Django的子类用户模型

models.py

class GeneralUser(ThirdPartyClass): 
    user = models.OneToOneField(
      settings.AUTH_USER_MODEL) 
    # general fields would go here 


class SpecificUser(GeneralUser): 
    # specific fields would go here 

显然,我想继承AbstractUser这是不行的?也许这不是解决这个问题的正确方法。有针对这个的解决方法吗?

边注:第三方应用程序我心目中可以发现here。无论如何,希望这个答案可以没有对第三方应用的细节解决,但如果没有其他的选择,那么无论干得是可以接受的工作! 谢谢!

+0

我不明白你的问题。首先,它不是“清楚”,这是行不通的,因为我认为OOP中的_inheritance_ _工作。为什么你重新定义你的派生类中的'user'字段? – kirelagin

+0

我不是故意在派生类中重新定义'user'字段,编辑并修复它。我知道这个继承模型可以工作,但在示例中'AbstractUser'不是子类。这是问题,因为我想它注册为一个Django'用户'。 – Joker

+0

如果'ThirdPartyClass'子类'AbstractUser'类也将隐含继承它。如果'ThirdPartyClass'不是'AbstractUser'的子类,那么在你的类中显式地继承它。 – kirelagin

回答

0

如果ThirdPartyClass子类AbstractUser,你已经完成。

如果如果没有,继承它在自己的类:

class GeneralUser(ThirdPartyClass, AbstractUser): 
    # ...