Django的用户由于我的应用程序requeriments我需要的用户类的像一个层次结构:扩展与子类
class CommonUser(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE)
photo = models.ImageField(upload_to="profileImages",blank=True,null=True)
#HERE: Common properties for every user
class Meta:
abstract = True
class Installer(CommonUser):
#HERE: Specific properties for Installer Companies
class Administration(CommonUser):
#HERE: Specific properties for Administration
class Client(CommonUser):
#HERE: Specific properties for Clients
那么,在view.py我需要得到轮廓图像的用户。我通过请求获取用户,所以我有一个models.User对象,我不知道它属于它的女巫班。我不是能够做到:
request.user.commonuser.photo
因为用户对象不必须与commonuser但安装程序/管理/客户端的任何OnetoOne关系......
任何想法?谢谢!
一种方法可以为CommonUser创建领域,如is_administration,is_client,is_installer默认值假,并将其设置为true,当您创建的对象那种类型。 –
你可能想把这些东西想象成配置文件而不是用户。 –