向User - ValueError添加权限时:要解压缩的值太多

时间:2015-04-20 20:26:24

标签: django django-models django-permissions

我创建了一个自定义用户并添加了权限is_driver,以检查我的用户是否属于Driver's Group

class CustomUser(AbstractUser):
    mobile = models.CharField(max_length=16)
    address = models.CharField(max_length=100)
    class Meta:
        permissions = (
            ("is_driver", "Can access driver's page")
        )

但是,当我运行manage.py makemigrations然后manage.py migrate时,会抛出错误:ValueError: too many values to unpack。 我对权限感到陌生,也许还有其他方法可以为Group添加权限。怎么了?

1 个答案:

答案 0 :(得分:18)

尝试在元组末尾添加缺少的,

class CustomUser(AbstractUser):
    mobile = models.CharField(max_length=16)
    address = models.CharField(max_length=100)
    class Meta:
        permissions = (
            ("is_driver", "Can access driver's page"),
        )

tuple只有一个项目时,Python是严格的。要了解在Python级别发生的事情,您可以打开shell并尝试以下操作。

>>> foo = (('ham', 'eggs'))
>>> foo
('ham', 'eggs')
>>> foo[0]
'ham'
>>> foo = (('ham', 'eggs'),)
>>> foo
(('ham', 'eggs'),)
>>> foo[0]
('ham', 'eggs')

长话短说,没有,它是一个不同的数据结构。