django关于使用电子邮件作为用户名登录的权限

时间:2014-11-20 13:35:39

标签: python django email

使用django 1.7,我想将useranme更改为电子邮件登录,我发现django在他们的网页上提供了官方解决方案:https://docs.djangoproject.com/en/1.7/topics/auth/customizing/,但在页面末尾,它说:

admin.site.register(MyUser, MyUserAdmin)
# ... and, since we're not using Django's built-in permissions,
# unregister the Group model from admin.
admin.site.unregister(Group)

如果我仍然需要权限来控制不同组中的不同用户,如果使用django的解决方案会有问题,或者我应该尝试其他方式

2 个答案:

答案 0 :(得分:1)

看起来AbstractUserAbstractBaseUserPermissionsMixin的子类,它们应该允许用户拥有群组。

您发布的链接中的示例仅包含子类AbstractBaseUser

https://github.com/django/django/blob/master/django/contrib/auth/models.py#L374

我几个月前第一次实现了一个自定义用户(使用电子邮件作为用户名)(在django 1.6上),发现自己不得不像文档那样引用源代码......

答案 1 :(得分:1)

如前所述,只需添加PermissionsMixin(在django.contrib.auth.models类中找到)即可分配和管理权限。

我还实现了一个使用该电子邮件作为用户名的自定义用户,并使用PermissionsMixin - 随意查看。我在Django文档和另一个Google教程的组合的帮助下创建了它 - 但我找不到链接。

https://github.com/ethanperez/t4k-rms/blob/master/riders/models.py