小编jai*_*ime的帖子

Django中Auth的多个用户类型

我的网站有两种用户类型,客户端专业版.还有两个"主要模块",一个用于客户购买东西等(主要网站),另一个用于专业人员管理操作.对于auth,我想:

  • 单个"登录"表单,用于检测用户是客户还是专业人员,并将她转发到正确的模块(主站点或管理站点).
  • 两个"注册"表单,一个用于客户,另一个用于专业人员.可能是,该网站会询问用户是否要注册为专业人士或客户,以触发每个案例的正确注册流程.
  • 客户将使用"主站点",不应被授权使用"管理站点".
  • 专业人士将使用"管理站点",但不应授权登录主站点.
  • 专业人士和客户都注册为用户,并共享公共字段,如用户名,电话,电子邮件等...

由于Django不会让我使用两个模型进行身份验证.我创建了自定义模型子类AbstractBaseUser,它作为Client和Professional的基础auth类.

class BaseUser(AbstractBaseUser):
  ...

class Client(BaseUser):
  ...

class Professional(BaseUser):
  ...
Run Code Online (Sandbox Code Playgroud)

我还将AUTH_USER_MODEL设置更改为:

AUTH_USER_MODEL = 'myapp.BaseUser'
Run Code Online (Sandbox Code Playgroud)

我还包括django-allauth来管理用户注册和身份验证.但是现在我被卡住了.我刚开始玩Django/Python,我不知道如何解决这个问题.

似乎没有官方推荐的方法(使用Django 1.5实现多个用户类型).我应该坚持子类化方法,还是应该在文档中指出OnetoOne关系?

一旦我正确设置了模型,我该如何处理这两个注册表单?是否有可能用django-allauth实现这一点,还是我需要手动完成?

据我所知,当注册新用户时,会在User表中创建一个新的基本用户.但由于我将创建用户专业化(客户端或专业版),我应该如何指定我还想在相应的表中创建与客户端相关的数据或专业相关的数据?

我对Django很新,所以任何建议都会有所帮助

django django-models django-forms django-allauth

14
推荐指数
1
解决办法
7654
查看次数

使用正则表达式和排序的Mongodb简单前缀查询很慢

我坚持使用这个简单的前缀查询.虽然Mongo文档声明通过使用前缀regex格式(/ ^ a /)可以获得相当好的性能,但是当我尝试对结果进行排序时,查询速度非常慢:

940毫升

db.posts.find({hashtags:/ ^ noticias /}).limit(15).sort({rank:-1}).hint('hashtags_1_rank_-1').explain()

{
"cursor" : "BtreeCursor hashtags_1_rank_-1 multi",
"isMultiKey" : true,
"n" : 15,
"nscannedObjects" : 142691,
"nscanned" : 142692,
"nscannedObjectsAllPlans" : 142691,
"nscannedAllPlans" : 142692,
"scanAndOrder" : true,
"indexOnly" : false,
"nYields" : 1,
"nChunkSkips" : 0,
"millis" : 934,
"indexBounds" : {
    "hashtags" : [
        [
            "noticias",
            "noticiat"
        ],
        [
            /^noticias/,
            /^noticias/
        ]
    ],
    "rank" : [
        [
            {
                "$maxElement" : 1
            },
            {
                "$minElement" : 1
            }
        ] …
Run Code Online (Sandbox Code Playgroud)

regex sorting indexing mongodb

7
推荐指数
1
解决办法
3285
查看次数