由于我的应用程序需求,我需要用户类的层次结构,如:
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
嗯,在视图.py我需要一个用户的个人资料图片。我通过请求获取用户,因此我有一个模型。用户对象和我不知道它属于女巫类。我不能做:
在请求.user.commonuser.照片
因为用户对象与commonuser没有任何一对一的关系,而是与安装程序/管理/客户端。。。在
有什么想法吗?谢谢!在
首先,我认为这种模式更像是一个个人资料而不是用户。如果您不介意使用1.9(和postgres),那么这是JSON字段的完美用例。您可以使用常规查找进行筛选,而不需要指定每种类型。通过这种方式,您还可以扩展用户模型,使用户可以同时完成多个角色。我认为另一种方式是
我在手机上,所以我不能测试这个,但是。。。在
我会在你的普通用户.user名为“普通用户”的字段。然后您可以使用:
就像你已经是了。在
我认为问题是你引用了一个Django用户对象来引用一个没有正确名称的向后关系。在
相关问题 更多 >
编程相关推荐