2015-11-06 141 views
0

在我的Django项目我有用户,每个用户可以拥有不同的权限(有的一个具有只读权限,但其他人可能会读取和写入权限),我想补充permissions领域的Django auth_user_groups表是这样的:如何将字段添加到django中的`auth_user_groups`表中?

enter image description here 这里是我的models.py:

from django.db.models import * 
from django.contrib.auth.models import User, Group 
from django.db.models.signals import post_save 


class MyUser(Model): 
    user = OneToOneField(User, primary_key=True) 
    Volume = IntegerField(default=5*1024*1024) 


def create_profile(sender, instance, created, **kwargs): 
    if created: 
     profile, created = MyUser.objects.get_or_create(user=instance) 

post_save.connect(create_profile, sender=User, dispatch_uid="create_profile") 

是有可能做到这一点?

回答

1

我会建议您创建一个与auth_user_groups的一对一关系的附加表来解决您的问题,而不是摆弄那个。这与文档中建议的the one类似。另外,为了提供您自己的模型,您需要做很多工作。

编辑:继续第一条评论:由于User模型的相应多对多字段不使用明确的intermediate model(实际上多对多字段属于PermissionsMixin,导出AbstractUser,导出User)。

一个one-to-one字段本质上是一个多对一的外键,unique=True。因此,您可以创建两个外键,一个用于用户,另一个用于组unique_together,然后使用这些外键。

+0

谢谢。但我怎样才能创建一个'OneToOneField'到'auth_user_groups'表?我的意思是我可以输入的名字是什么? (比如'from django.contrib.auth.models import User,Group'这是什么名字?我试过'from django.contrib.auth.models import UserGroups'但它不正确) – shotgunner

+0

欢迎使用@shotgunner,我看到你的点,更新。 – Wtower

0

Django向用户组和个人用户提供权限,您可以创建多个组并为这些组分配权限。并将组分配给每个用户。因此,与特定组相关的用户将拥有相同的权限集。

这里指的更多的https://docs.djangoproject.com/en/1.8/topics/auth/default/#permissions-and-authorization

+1

谢谢。我的项目中的所有组都具有相同的权限(读,写|写)。但他们中的用户可能已经读取或读取权限。这不能用你说的处理。 – shotgunner

相关问题