Регистрация пользователя в django des не работает и не выдает мне никакой ошибки
Я работал над простой регистрационной вевой, которая посылает код активации тоже в django. И проблема в том, что он не выдает мне никакой ошибки и не регистрирует ни одного пользователя, и я не знаю почему? Вот мой код: veiws.py :
def register_page(request):
if request.method == 'POST' :
form = forms.UserRegister(request.POST)
if form.is_valid():
data = form.cleaned_data
if data['password_1'] != data['password_2'] and '@' in data['email'] and data['username'] != data['email'] and not User.objects.filter(username = data['username']).exists():
user = User.objects.create_user(username=data["username"] , email = data['email'] , password = data['password1'] , is_active = False)
user.save()
v = randint(1000 , 5000)
subject = 'sample subject'
message = f'your code : {v}'
email_from = settings.EMAIL_HOST_USER
recipient_list = [data['email'] , ]
send_mail( subject, message, email_from, recipient_list )
active_code.objects.create(code = v , email = data['email']).save()
return redirect('home:activeveiw')
else:
if data['username'] == data['email']:
messages.error(request ,'error 506')
if User.objects.filter(username = data['username']).exists():
messages.error(request ,'error 789')
if data['password_1'] != data['password_2'] :
messages.error(request , 'error 899')
else :
form = forms.UserRegister()
con = {"form" : form }
return render (request , 'home/register.html' , con)
шаблон :
<form action="" method="post">
{% csrf_token %}
<input type="text" name="username">
<input type="text" name="email">
<input type="text" name="password_1">
<input type="text" name="password_2">
<button type="submit">send</button>
</form>
{% if messages %}
{% for i in messages %}
{{ i }}
{% endfor %}
{% endif %}
Возможно, форма не действительна, поэтому проверьте form.errors, а также переданные данные в request.POST.
Если вы хотите отображать ошибки в шаблоне, вы можете сделать что-то вроде этого:
<ul class="errorlist">
{% if form.non_field_errors %}
<li>{{ form.non_field_errors }}</li>
{% endif %}
{% for field in form %}
{% if field.errors %}
<li>
{{ field.label }}
<ul class="errorlist">
{% for error in field.errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
</li>
{% endif %}
{% endfor %}
</ul>