2010-04-27 6 views
1

Je suis nouveau sur django et j'essaie de créer un formulaire d'inscription avec quelques validations. En dehors de cela, je veux aussi un code de suggestion de nom d'utilisateur qui dira à l'utilisateur si le nom d'utilisateur qu'il essaie d'enregistrer est disponible ou déjà utilisé. Ensuite, il devrait donner quelques suggestions qui pourraient être disponibles à choisir. Est-ce que quelqu'un qui a travaillé sur le même ou un même projet peut m'aider avec ça?Django Forms Aide nécessaire

Merci

Répondre

1

Découvrez l'application django-registration. Et jetez un oeil à la classe registration.forms.RegistrationForm et à leur méthode clean_username.

Il devrait être facile d'étendre le formulaire pour suggérer certains noms d'utilisateur.

ici est un exemple de code pour générer le nom d'utilisateur unique avec postfixes numérotés:

username # filled with user input or first/lastname etc. 

    #check for other profile with equal names (and those with a postfix) 
    others = [int(username.replace(name, "0")) 
       for p in User.objects.filter(username__startswith=username).exclude(user=self.user) 
       if username.replace(name, "0").isdigit()] 

    #do we need a postfix 
    if len(others) > 0 and 0 in others: 
     username = "%s%d" % (username, max(others) + 1) 

vous pouvez remplir les noms générés dans un choix champ de formulaire: http://docs.djangoproject.com/en/dev/ref/forms/fields/#choicefield

+0

Salut maersu, Merci pour cette info vraiment apprécier cette. J'ai installé cette application et travaille avec certains problèmes que vous pourriez être en mesure de m'aider. Je suis coincé avec l'extension de la suggestion de certains noms d'utilisateur partie. pouvez-vous m'aider ce que je dois faire pour cela – itsandy

+0

j'ai mis à jour ma réponse. BTW: lire mon commentaire de http://stackoverflow.com/questions/2719452/django-forms-help-needed/ – maersu

+0

Salut Maersu, j'ai ajouté l'exemple de code que vous avez fourni pour générer le nom d'utilisateur avec postfixes nombre et ajouté dans le def clean_username (self): sous toutes les autres validations. Corrigez-moi si je me trompe ou si je dois aller ailleurs. Cordialement – itsandy