我在下一篇文章中读到了它,试图找到有关我怀疑的信息:
https://baxeico.wordpress.com/2014/09/10/group-combo-box-django-user-profile-form/
https://micropyramid.com/blog/django-permissions-and-groups/
https://www.webforefront.com/django/setupdjangousers.html
我的系统中的前提:用户只能在一个独特的组中。
我的问题是关于我的前提,从我的应用程序向用户分配唯一群组的正确方法是什么?
答案 0 :(得分:0)
通过PermissionsMixin将组添加到AbstractUser,并且是一个ManyToManyField。有两种方法可以做到这一点:
ForeignKey
在新Group
模型上ProjectUser
至django.contrib.auth.models
,并重新实现PermissionsMixin和AbstractUser。第一种方法有点棘手,我不推荐它。第二个缺点是你几乎可以复制80%的PermissionsMixin和所有东西,但它是AbstractUser的继承,但必须与新版本保持同步。遗憾的是,Django以这种方式实施它是一种耻辱。
但第二个优点是,用户和组之间的关系现在就像您在需求中定义的那样。所以对我来说,保持正确的数据模型而不是黑客攻击它,胜利。
看一下app/models.py
我提到的课程。
澄清第二种方法:
from django.contrib.auth.models import AbstractBaseUser, Group
class ProjectUser(AbstractBaseUser):
group = models.ForeignKey(Group)
# fields and methods from AbstractUser go here
# fields and methods from PermissionsMixin go here
:
var customer: Customer = Customer.sharedInstance
final class Customer {
static let sharedInstance = Customer()
var name: String!
var address: String!
var zipcode: String!
var id: String!
private init() {}
}
(对不起,这是两个课程而不是你需要复制的课程。)