2

我在 stackoverflow.com 上看到另一个问题,其标题似乎相似,但不能满足我的要求,而且我的用户非常不同,因此只有不同的角色可能无法正常工作。我有一个工作门户的场景,其中一种用户是一家公司,它具有不同的属性和不同的功能,而另一种是可以显示他的个人资料和简历等的候选人,他们将有不同的 URL。所以他们完全不同,但共同点是他们都是注册用户。他们将使用登录表单,他们将更改密码,我打算User为此目的使用课程。

我面临的实际问题是关于UserProfile类的使用。UserProfile 用于配置文件,但在我的情况下,这两个用户完全不同,并且在配置文件中需要许多不同的东西。此外,我将来可能会在系统中添加更多用户类型。在 django 中,我们通过在 settings.py 中添加这个单一模型来讲述配置文件

AUTH_PROFILE_MODULE = ‘accounts.userprofile’

那么有没有办法通过在 django 中使用某种继承或抽象类或其他方式来做到这一点,以便我可以获得预期的功能并可以使用 django Profiles

4

1 回答 1

2

编辑:好的,经过进一步检查,我之前的答案显然不起作用。

我曾提倡抽象 UserProfile 类。但是,如果你这样做,你就不能实例化它,所以你又回到了原点。

但是,您可以使用多表继承来实现您想要的。在文档和提供灵感的这个Quora 线程中查看这一点。

除了排除 Meta 子类和抽象变量之外,我之前发布的代码基本保持不变。

class UserProfile(models.Model):
    # Some Stuff

class CompanyProfile(UserProfile):
    # Some more stuff

class CandidateProfile(UserProfile):
    # Even more stuff
于 2012-03-30T19:14:58.630 回答