0
我正在編寫一個應用程序,該應用程序具有大量必須按順序提交的字段。表單的每個部分只有在用戶有權訪問它時纔可用,這些權限在其中一個模型中定義,並且管理員用戶在條件滿足時將這些權限提供給用戶。如何在django中撤銷用戶的自定義模型權限
我現在要做的是在用戶提交表單的那一部分時,刪除該用戶的用戶權限。有什麼辦法可以做到這一點?
這裏是模型:
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自定義權限。我不清楚我需要在你的解決方案中放置什麼「obj」,還有,我是否需要從django用戶模型中導入某些內容? – edalco9
obj代表「用戶」或組。你也可以使用'some_user.user_permissions.remove(permission,permission,...)'。 –
我寫在這樣的: 'permiso = User.user_permissions.remove(request.user,「grupos」) permiso.save()' 但是我得到這個屬性錯誤:'ReverseManyRelatedObjectsDescriptor'對象沒有屬性'刪除' 你能告訴我這是否是正確的做法嗎? – edalco9