Je rencontre un problème lors de l'affichage d'un message d'erreur dans la page HTML. J'utilise UserCreationForm par défaut de Django pour la page d'inscription. Il a deux champs de mot de passe - un original et un pour la confirmation. Lorsque l'utilisateur entre des mots de passe différents, je reçois à/inscription/alors que je veux que le message d'erreur soit affiché dans la page HTML en disant que les mots de passe ne correspondent pas. J'ai parcouru les docs et j'ai ajouté quelques lignes connexes dans mon code, je ne sais pas où je vais mal.Affichage des messages d'erreur dans le modèle dans DefaultUserCreationForm - django
Voici mon views.py:
def adduser(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
print(request.POST)
if(form.is_valid):
try:
user = employees.objects.get(emp_id=request.POST['username'])
except employees.DoesNotExist:
user = None
print(user)
if(user != None):
if request.POST['username'] in employees.objects.values_list('manager_id__emp_id',flat=True):
g = Group.objects.get(name='Managers')
newuser = form.save()
newuser.groups.add(g)
else:
g = Group.objects.get(name='Employees')
newuser = form.save()
newuser.groups.add(g)
return render(request,'login.html',{'form': form})
else:
form = UserCreationForm()
return render(request,'signup.html', {'form': form, 'msg': 'Enter valid employee id'})
else:
form = UserCreationForm()
return render(request,'signup.html', {'form': form})
et voici mon signup.html:
<body>
<div class="container">
<div class="page-header">
<h1>Sign-up Here</h1>
</div>
{% block body %}
<form method="post">
{% csrf_token %}
<font color="orange" size="5px"><p> * Enter your Employee id, as username * </p></font>
{{ form.as_p }}
<font color="red"> {{ msg }} </font><br>
<font color="red"> {{ form.password1.errors }} </font><br>
<font color="red"> {{ form.password2.errors }} </font><br>
<br>
<button class="btn btn-success" type="submit"> Go! </button>
</form>
{% endblock %}
</div>
</body>
ce qui est une action de forme? – Vaibhav
Il y a d'autres problèmes/corrections dans votre code qui peuvent être corrigés. –
@Vicmathur, car il s'agit d'une forme intégrée, qui n'est pas nécessaire et il fonctionne parfaitement bien sans action. –