我有一个层次结构,在这个意义上,可以有一个公司和一个用户,其中一个公司可以嵌套在另一个公司中,而用户可以独立或属于一个公司。有没有关于如何将django用户模型与django-mptt包结合使用的文档?
发布于 2015-06-03 18:30:29
Django documentation: Customizing authentication in Django建议使用以下选项:
与用户模型(Extending the User model):具有一对一关系的
有两种方法可以在不替换您自己的模型的情况下扩展默认用户模型。如果您需要的更改纯粹是行为更改,并且不需要对存储在数据库中的内容进行任何更改,则可以基于用户创建代理模型。这允许代理模型提供的任何功能,包括默认排序、自定义管理器或自定义模型方法。
如果您希望存储与用户相关的信息,则可以对包含附加信息字段的模型使用一对一关系。这种一对一模型通常称为配置文件模型,因为它可能存储有关站点用户的非身份验证相关信息。
项目的
某些类型的项目可能有身份验证需求,而Django内置的用户模型并不总是适合这些需求。例如,在一些网站上,使用电子邮件地址作为标识令牌比使用用户名更有意义。
以上两者都可以继承自MPTTModel,并解决您的问题。我个人推荐第一种方法,因为它更简单,在我看来,它对您所描述的内容来说已经足够了,但这仍然取决于您未来的特定需求。
发布于 2015-06-03 19:12:56
我认为你所描述的实际上是两个不同的问题。您的公司模型需要分层,但这并不意味着用户模型也需要分层。你可能会有:
class Company(<mpttmodel>):
pass
class YourUser(User):
company = models.ForeignKey(null=True)否则,如果YourUser继承自mptt模型,您将拥有分层的用户模型,而不是公司模型。
https://stackoverflow.com/questions/30616914
复制相似问题