J'essaie d'ajouter une permission 'view_user' au modèle User dans Django. J'ai ajouté un modèle proxy:Ajout de l'autorisation au modèle User dans Django
from django.contrib.auth.models import User, Permission
from django.db import models
class RodanUser(User):
class Meta:
proxy = True
permissions = (
('view_user', 'View User'),
)
mais je reçois l'erreur:
ContentType matching query does not exist.
qui à mon avis est que le app_label de l'utilisateur de Django est auth
mais app_label de RodanUser est rodan
donc j'ai changé le modèle et ajouté app_label:
from django.contrib.auth.models import User, Permission
class RodanUser(User):
class Meta:
proxy = True
permissions = (
('view_rodanuser', 'View User'),
)
app_label = 'auth'
maintenant je l'erreur:
MixedContentTypeError at /users/
Strangest chose est que je réellement été en mesure d'obtenir que cela fonctionne en ajoutant d'abord un modèle none-proxy:
from django.contrib.auth.models import User, Permission
from django.db import models
class RodanUser(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
class Meta:
permissions = (
('view_rodanuser', 'View Rodan User'),
)
puis changer dans le modèle de procuration ci-dessus (sans app_label) car le modèle sans proxy ajoutera l'autorisation dans la base de données où l'élément content_type_id pointe vers RodanUser au lieu de User.
J'ai trouvé this ce qui explique pourquoi je ne peux pas utiliser un proxy avec permission. D'autres suggestions?
est-ce le '__init __. Py' de l'application django (celle qui a le même nom que le projet django) ou le projet django lui-même? –