我正在尝试学习如何使用User类并制作表单,但是无法显示电子邮件,first_name和last_name字段,我有以下代码:
forms.py:
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
class RegistrationForm(UserCreationForm):
email = forms.EmailField(required = True)
class Meta:
model = User
fields = (
'username',
'email',
'first_name'
'password1',
'password2'
)
def save(self, commit = True):
user super(UserCreationForm, self).save(commit = False)
user.first_name = self.cleaned_data['first_name']
user.last_name = self.cleaned_data['last_name']
user.email = self.cleaned_data['email']
if commit:
user.save()
return user
views.py:
from django.shortcuts import render, redirect
from django.http import HttpResponse
from django.contrib.auth.forms import UserCreationForm
def index(request):
return HttpResponse('index page')
def register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
return redirect('accounts')
else:
form = UserCreationForm()
return render(request, 'accounts/register.html', {'form': form})
# Create your views here.
register.html:
{% extends 'accounts/base.html' %}
{% block head %}
<title> Sign Up</title>
{% endblock %}
{% block body %}
<h2>Sign up</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Sign up</button>
</form>
{% endblock %}
当我转到/ accounts /注册一个带有用户名的表单时,会出现密码和密码确认字段,表单将起作用并保存到数据库中。但是first_name
模型中包含last_name
,email
,User
字段的位置在哪里?
答案 0 :(得分:2)
在您的观看次数中使用RegistrationForm
代替UserCreationForm
替换
from django.contrib.auth.forms import UserCreationForm
到
from .forms import RegistrationForm
form = RegistrationForm()