我在stackoverflow.com上看到另一个问题,其标题看似相似,但是不符合我的要求,我的用户非常不同,所以只有不同的角色可能效果不佳。我有一个职位门户的场景,其中一种类型的用户是具有不同属性不同功能的公司,而另一种是可以显示其简档并恢复e.t.c.的候选人,他们将具有不同的URL。所以他们完全不同,但常见的是他们都是注册用户。他们将使用登录表单,他们将有更改密码,我打算使用User
类来实现此目的。
我面临的实际问题是UserProfile
课程使用情况。 UserProfile用于配置文件,但在我的情况下,这两个用户完全不同,在配置文件中需要许多不同的东西。此外,我将来可能会在系统中添加更多用户类型。在django中,我们通过在settings.py
AUTH_PROFILE_MODULE = ‘accounts.userprofile’
有没有办法通过在django中使用某种继承或抽象类或其他方式来实现这一点,以便我可以获得预期的功能并且可以使用django Profiles
?
答案 0 :(得分:2)
编辑:好的,经过进一步检查,我之前的回答显然不起作用。
我曾主张抽象UserProfile类。但是,如果你这样做,就无法实例化它,所以你要回到原点。
但是,您可以使用多表继承来实现您想要的功能。请参阅文档中的this和提供灵感的Quora thread。
我之前发布的代码基本保持不变,除了排除Meta子类和抽象变量。
class UserProfile(models.Model):
# Some Stuff
class CompanyProfile(UserProfile):
# Some more stuff
class CandidateProfile(UserProfile):
# Even more stuff