首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Django-mppt扩展django用户模型

使用Django-mppt扩展django用户模型
EN

Stack Overflow用户
提问于 2015-06-03 18:02:36
回答 2查看 406关注 0票数 1

我有一个层次结构,在这个意义上,可以有一个公司和一个用户,其中一个公司可以嵌套在另一个公司中,而用户可以独立或属于一个公司。有没有关于如何将django用户模型与django-mptt包结合使用的文档?

EN

回答 2

Stack Overflow用户

发布于 2015-06-03 18:30:29

Django documentation: Customizing authentication in Django建议使用以下选项:

与用户模型(Extending the User model):具有一对一关系的

  • 编写模型

有两种方法可以在不替换您自己的模型的情况下扩展默认用户模型。如果您需要的更改纯粹是行为更改,并且不需要对存储在数据库中的内容进行任何更改,则可以基于用户创建代理模型。这允许代理模型提供的任何功能,包括默认排序、自定义管理器或自定义模型方法。

如果您希望存储与用户相关的信息,则可以对包含附加信息字段的模型使用一对一关系。这种一对一模型通常称为配置文件模型,因为它可能存储有关站点用户的非身份验证相关信息。

项目的

某些类型的项目可能有身份验证需求,而Django内置的用户模型并不总是适合这些需求。例如,在一些网站上,使用电子邮件地址作为标识令牌比使用用户名更有意义。

以上两者都可以继承自MPTTModel,并解决您的问题。我个人推荐第一种方法,因为它更简单,在我看来,它对您所描述的内容来说已经足够了,但这仍然取决于您未来的特定需求。

票数 1
EN

Stack Overflow用户

发布于 2015-06-03 19:12:56

我认为你所描述的实际上是两个不同的问题。您的公司模型需要分层,但这并不意味着用户模型也需要分层。你可能会有:

代码语言:javascript
复制
class Company(<mpttmodel>):
    pass

class YourUser(User):
    company = models.ForeignKey(null=True)

否则,如果YourUser继承自mptt模型,您将拥有分层的用户模型,而不是公司模型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30616914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档