Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何撤销django中用户的自定义模型权限_Python_Django_Django Models_Django Views - Fatal编程技术网

Python 如何撤销django中用户的自定义模型权限

Python 如何撤销django中用户的自定义模型权限,python,django,django-models,django-views,Python,Django,Django Models,Django Views,我正在写一个应用程序,它有一个很大的表单,有很多字段需要按顺序提交。只有当用户具有访问权限时,表单的每个部分才可用,这些权限在其中一个模型中定义,并且管理员用户在满足条件时将其提供给用户 我现在要做的是,当用户提交表单的该部分时,删除该用户的用户权限。有没有办法做到这一点 模型如下: class PartidosUsuarios(models.Model): idUsuario = models.ForeignKey(User) idFifa = models.ForeignKe

我正在写一个应用程序,它有一个很大的表单,有很多字段需要按顺序提交。只有当用户具有访问权限时,表单的每个部分才可用,这些权限在其中一个模型中定义,并且管理员用户在满足条件时将其提供给用户

我现在要做的是,当用户提交表单的该部分时,删除该用户的用户权限。有没有办法做到这一点

模型如下:

class PartidosUsuarios(models.Model):
    idUsuario = models.ForeignKey(User)
    idFifa = models.ForeignKey(PartidosFifa, null=True)
    idPartido = models.CharField(max_length=20)
    PaisL = models.CharField(max_length=250)
    Local = models.IntegerField(max_length=11, default=0)
    Visita = models.IntegerField(max_length=11, default=0)
    PaisV = models.CharField(max_length=250)
    Resultado = models.CharField(max_length=250)
    Puntos = models.IntegerField(max_length=11, default=0)
    Capturado = models.CharField(max_length=10, default="No")
    class Meta:
        permissions = (
            ("grupos", "Puede ver partidos de grupos"),
            ("octavos", "Puede ver partidos de octavos"),
            ("cuartos", "Puede ver partidos de cuartos"),
            ("semis", "Puede ver partidos de semis"),
            ("final", "Puede ver partidos de final"),
        )
    def __unicode__(self):
        return unicode(self.idPartido)
以下是观点:

@login_required(login_url="/")
def inicio(request):
    if request.method == "POST":
        form = Pronosticos(request.POST)
        for i in range(47):
            pronostico, _ = PartidosUsuarios.objects.get_or_create(idUsuario=request.user, idPartido=request.POST.get("idPartido"+str(i), ""), PaisL=request.POST.get("PaisL"+str(i), ""), Local=request.POST.get("Local"+str(i), ""), Visita=request.POST.get("Visita"+str(i), ""), PaisV=request.POST.get("PaisV"+str(i), ""), Capturado="Si")
            if pronostico.Local > pronostico.Visita:
                pronostico.Resultado = "Local"
                pronostico.save()
            elif pronostico.Visita > pronostico.Local:
                pronostico.Resultado = "Visita"
                pronostico.save()
            elif pronostico.Local == pronostico.Visita:
                pronostico.Resultado = "Empate"
                pronostico.save()
    partidos_usuarios = PartidosUsuarios.objects.order_by("idPartido")
    partidos_fifa = PartidosFifa.objects.order_by("Partido")[:64]
    context = ({"partidos_fifa": partidos_fifa, "partidos_usuarios": partidos_usuarios})
    return render(request, "brasil/inicio.html", context)
在这种情况下,提交表单时应删除的权限称为grupos


任何帮助都将不胜感激,谢谢

嗯,我不清楚您是否有一个名为grupos的角色,并且您希望删除该角色提交表单的权限,或者您是否有一个名为grupos的自定义权限。但在这两种情况下,您都可以使用:permissions.utils.remove\u permissionobj、role、permission

其中:

obj

应删除其权限的内容对象

角色

应删除其权限的角色

许可

应删除的权限。权限对象或权限的代码名

因此,在您看来,只要在方便的时候调用这个函数


有关使用权限的更多信息,请参见:

我创建了一个名为grupos的自定义权限。我不清楚我需要在您的解决方案中放置什么作为obj,而且,我需要从django用户模型中导入什么吗?obj代表一个用户或一个组。你也可以使用一些_user.user _permissions.removepermission,permission,….我是这样写的:permiso=user.user _permissions.removequest.user,grupos permiso.save但是我得到了一个属性错误:“ReverseManyRelatedObjectsDescriptor”对象没有属性“remove”,你能告诉我这是否是正确的方法吗?你不必放置用户模型。请在“权限和授权”部分下查看此链接