为什么电子邮件没有在用户注册时保存?
Why is the email not saving on user sign up?
我去测试用户注册,但它一直告诉我 UNIQUE constraint failed: users_customuser.email
。那是因为电子邮件没有与表单的其余部分一起保存。我与检查员一起检查了数据库,它显示了一个空白的电子邮件字段。我在 form.save
之前放了一个调试打印,它显示了用户名电子邮件和密码,所以我知道电子邮件在表单数据中。该视图看起来不错,所以对我来说没有意义。尝试切换到 django 2.2 但没有帮助。 表格有效但电子邮件未保存。
views.py
def signup(request):
if request.method == 'POST':
form = SignUpForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
raw_password = form.cleaned_data.get('password1')
user = authenticate(username=username, password=raw_password)
login(request, user)
return redirect('home')
else:
form = SignUpForm()
return render(request, 'user_accounts/signup.html', {'form': form})
forms.py
class SignUpForm(UserCreationForm):
email = forms.EmailField(max_length=254, help_text='Enter a valid email address')
class Meta:
model = CustomUser
fields = ('username', 'password1', 'password2')
signup.html
{% block content %}
<h2>Sign up</h2>
<form method="post">
{% csrf_token %}
{% for field in form %}
<p>
{{ field.label_tag }}<br>
{{ field }}
{% if field.help_text %}
<small style="color: grey">{{ field.help_text }}</small>
{% endif %}
{% for error in field.errors %}
<p style="color: red">{{ error }}</p>
{% endfor %}
</p>
{% endfor %}
<button type="submit">Sign up</button>
</form>
{% endblock %}
我把forms.py
改成了下面的
forms.py
class SignUpForm(UserCreationForm):
# Deleted extra email field
class Meta:
model = CustomUser
fields = ('email', 'username', 'password1', 'password2') # <-- Added 'email'
我去测试用户注册,但它一直告诉我 UNIQUE constraint failed: users_customuser.email
。那是因为电子邮件没有与表单的其余部分一起保存。我与检查员一起检查了数据库,它显示了一个空白的电子邮件字段。我在 form.save
之前放了一个调试打印,它显示了用户名电子邮件和密码,所以我知道电子邮件在表单数据中。该视图看起来不错,所以对我来说没有意义。尝试切换到 django 2.2 但没有帮助。 表格有效但电子邮件未保存。
views.py
def signup(request):
if request.method == 'POST':
form = SignUpForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
raw_password = form.cleaned_data.get('password1')
user = authenticate(username=username, password=raw_password)
login(request, user)
return redirect('home')
else:
form = SignUpForm()
return render(request, 'user_accounts/signup.html', {'form': form})
forms.py
class SignUpForm(UserCreationForm):
email = forms.EmailField(max_length=254, help_text='Enter a valid email address')
class Meta:
model = CustomUser
fields = ('username', 'password1', 'password2')
signup.html
{% block content %}
<h2>Sign up</h2>
<form method="post">
{% csrf_token %}
{% for field in form %}
<p>
{{ field.label_tag }}<br>
{{ field }}
{% if field.help_text %}
<small style="color: grey">{{ field.help_text }}</small>
{% endif %}
{% for error in field.errors %}
<p style="color: red">{{ error }}</p>
{% endfor %}
</p>
{% endfor %}
<button type="submit">Sign up</button>
</form>
{% endblock %}
我把forms.py
改成了下面的
forms.py
class SignUpForm(UserCreationForm):
# Deleted extra email field
class Meta:
model = CustomUser
fields = ('email', 'username', 'password1', 'password2') # <-- Added 'email'