Ici, j'essaie d'ajouter / mettre à jour le nom de groupe et les autorisations de l'utilisateur et j'ai essayé comme ça.
Pour ajouter ça fonctionne bien, mais lors de la mise à jour avec la fonction Type d'exception: Valeur d'exception IntegrityError: (1062, "Dupliquer
Entrée 'développeur' pour clé 'nom' ") p>
BlockQuote> Je pense que cela est dû à la relation OneOne. Comment puis-je mettre à jour le groupe d'utilisateurs ici? P> vues.py p> formes.py p> Modèle pour le groupe d'édition p> EDIT: strong>
Comme @ Shashank a suggéré
Tout en essayant d'obtenir un objet modèle renvoyé, mais dit p> et lors de l'utilisation du filtre, il est renvoyé au lieu de l'instance, il lance p> EDIT_USER_GROUP CODE> J'ai eu un problème.
Le problème est p>
Exception Value:
'int' object has no attribute 'permissions'
group = Group.objects.filter(pk=pk).update(name=name)
3 Réponses :
Cette ligne que vous avez écrite est la mise à jour de chaque groupe Que diriez-vous de remplacer par code> -
group = group.Object.update (nom = nom) code> et quand il essaie de ne pas fonctionner à cause de la contrainte unique sur le nom. p>
groupe.name = nom code>,
group.save () code> p>
L'exception d'intégrité vous dit essentiellement que quelque part dans votre code, vous essayez de définir le nom em> pour différents objets de groupe dans "développeur" qui est interdit (en raison de la contrainte unique).
Dans votre fonction IE De p> à p> DEF EDIT_USER_GROUP (Demande, PK) CODE>, au lieu de
group.Object.update code>, vous devez faire
group.Object.get (nom = nom) < / code> p>
Votre intention n'est pas totalement claire - voulez-vous (aussi) modifier le nom du groupe ou simplement modifier les autorisations (et utiliser Dans le premier cas, vous voulez: p> mais strong> car il existe une contrainte unique sur Dans le second cas, vous avez bien sûr besoin de p> update () code> au lieu de `get ()` `était juste un TYPO)?
GROUP.NAME
group = Group.objects.get(name=name)
group.permissions.set(permissions)
Je suppose que vous devez d'abord filtrer l'objet modèle, puis mettre à jour sa valeur, comme
myModel.ObjectS.filter (pk = pk) .UPDate (val = val) code>
Groupe.Perrissions.set (Autorisations) Code> Cette ligne vous donne une erreur car la méthode de mise à jour peut être renvoyée
int code>, pouvez-vous essayer de diviser des éléments tels que
groupe = mymodel. objets.filter (pk = pk) code> de sorte que vous puissiez obtenir cet objet filtré, puis
group.update code>, puis modifier la permission. Assurez-vous que l'objet de groupe n'est pas une liste (comme après filtre DO
Group = Group [0] Code>)