ManyToManyField我如何在一个数据库字段中存储许多数据 - Django

时间:2018-02-28 11:52:11

标签: django django-models

class Roles(models.Model):
    name = models.CharField(max_length=60, unique=True)

    def __str__(self):
        return self.name

class Permission(models.Model):
    name = models.CharField(max_length=60, unique=True)
    create = models.BooleanField(max_length=5)
    read = models.BooleanField(max_length=5)
    update = models.BooleanField(max_length=5)
    delete = models.BooleanField(max_length=5)

    def __str__(self):
        return self.name

class RolesHasPermission(models.Model):
    role_id = models.ForeignKey(Roles, on_delete=models.CASCADE)
    permission_id = models.ManyToManyField(Permission)

RoleHasPermission我需要在数据库中的一个permission_id字段中存储多个role_id个名称 我怎样才能做到这一点?我已经尝试了很多,但我找不到解决这个问题的方法。

例如: -

我想让role_id获取许多权限名称示例,如果我拥有我的权限,经理(读取,更新,删除)IT(创建)并拥有我的角色,管理员我想让管理员角色采取两个权限(经理,IT)一起通过make模型让我从列表中选择我的角色管理员和管理员的复选框和IT的复选框当我选择管理员角色并检查管理员和IT的盒子并按保存时它会将其存储在DB中(管理员||经理,IT)

1 个答案:

答案 0 :(得分:0)

Django comes with simple permissions by default,我强烈建议您使用。

除此之外,我不确定你要解决的问题是什么?