HTMLページにエラーメッセージを表示する際に問題が発生しています。サインアップページにDjangoのデフォルトのUserCreationFormを使用しています。それは2つのパスワードフィールドを持っています - 元のものと確認のためのもの。ユーザーが異なるパスワードを入力すると、パスワードが一致しなかったことを示すHTMLページにエラーメッセージを表示したいのに対し、/ signup /にはが表示されます。私はドキュメントを読んで、関連する行をコードに追加しました。どこが間違っているのか分かりません。ここでDefaultUserCreationForm - djangoのテンプレートにエラーメッセージを表示
は私の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})
、ここでは私の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>
いただきましフォームアクションこのよう ? – Vaibhav
あなたのコードに修正可能な問題や修正がいくつかあります。 –
@Vicmathurはビルトインフォームなので必須ではなく、アクションなしでは完全に正常に動作しています。 –