8
votes

Django, changement nom d'utilisateur

est-il possible de changer le nom d'utilisateur?

J'ai essayé ce qui suit: - xxx

rien ne change

Je peux changer le nom d'utilisateur dans L'écran de l'administrateur, mais il y a plus de 100 où le client a demandé à différents noms d'utilisateur.


7 commentaires

Avez-vous vérifié si vous obtenez un résultat? Bien que vous ayez une sorte d'erreur pour cela. Mettez votre user = user.Oberject.get (nom d'utilisateur = nom d'utilisateur) à l'intérieur d'une prise try avec une exception user.doesNotexist


Je pense que le code va fonctionner, si étrange.


Que voulez-vous dire, "rien ne change"? Ce code fonctionnera en supposant que votre modèle utilisateur a un nom d'utilisateur .


Avez-vous l'intention de changer le nom d'utilisateur de l'USERTYPE qui vient avec Django? Comme superutilisateur, etc.?


Argh !!! J'ai raté le () sur la sauvegarde - Désolé gars, un de ces moments idiotes pour moi. Merci pour votre patience. Ça fonctionne maintenant.


@jimscafe Pouvez-vous poster une réponse à votre question et accepter la réponse


Voir cette réponse, cela a fonctionné pour moi: Modifier le nom d'utilisateur pour l'utilisateur authentifié dans le modèle utilisateur de Django


3 Réponses :


14
votes

Comme vous le note ( Django, modifier le nom d'utilisateur ), c'était une erreur dans Votre code - L'échantillon de code n'a pas reflété votre code. L'échantillon de code affiché fonctionnera en fait pour modifier un nom d'utilisateur utilisateur d'objet: xxx


1 commentaires

Jimscafe a déjà écrit que leur échantillon a fonctionné, cette réponse n'a donc pas beaucoup ajouté. Cela est probablement pourquoi vous avez été bullevé.



3
votes

Il y a un scénario de plus possible pourquoi le nom d'utilisateur ne change pas après ...

Votre nom d'utilisateur dans l'objet utilisateur a par défaut la longueur maximale de 30 et vous essayez de changer le nom d'utilisateur à quelque chose de plus long que 30 caractères et les 30 premiers caractères du nouveau nom d'utilisateur nouveau et ancien sont les mêmes;)


0 commentaires

1
votes

Avant de modifier le nom d'utilisateur, assurez-vous également que le nom d'utilisateur n'existe pas déjà:

if User.objects.filter(username=newusername).exists():
    raise forms.ValidationError(u'Username "%s" is not available.' % newusername)

user = User.objects.get(username = username)
user.username = newusername
user.save()


1 commentaires

Si l'utilisateur existe, mais l'utilisateur est le nom d'utilisateur de la modification de l'utilisateur? Je vérifierais également si l'utilisateur existant n'est pas le même utilisateur qui change son nom d'utilisateur.