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”,你能告诉我这是否是正确的方法吗?你不必放置用户模型。请在“权限和授权”部分下查看此链接