python - 名字和姓氏未以 django 形式显示

标签 python django

我正在尝试创建包含以下信息(名字、姓氏、电子邮件、密码、密码确认)的注册表单,但是我没有得到名字和姓氏。到目前为止我只得到用户名、密码和密码确认。为了添加缺失的字段我做错了什么?

forms.py

class SignUpForm(UserCreationForm):
    first_name = forms.CharField(max_length=30, required=False, label='Fornavn', help_text='Optional.')
    last_name = forms.CharField(max_length=30, required=False, label='Efternavn', help_text='Optional.')
    email = forms.EmailField(max_length=254, label='Email', help_text='Required. Inform a valid email address.')

class Meta:
    model = User
    fields = ('username', 'first_name', 'last_name', 'email')

注册.html

{% for field in form %}
<div class="form-group">
     <label>{{ field.label }}</label>
     {% render_field field class="form-control" placeholder=field.help_text %}
</div>
{% endfor %}

views.py

def register(request):
    if request.user.is_authenticated():
        return redirect('/account/')
    context = {}
    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('/account/')
    else:
        form = UserCreationForm()
    return render(request, 'register.html', {'form': form})

网址

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^register/$', views.register, name='register')

]

最佳答案

您正在为 GET(和其他)请求传递 UserCreationForm 而不是 SignUpForm:

if request.method == "POST":
    ...
else:
    form = SignUpForm()

关于python - 名字和姓氏未以 django 形式显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47334964/

相关文章:

python - 将列表中的连续数字组合在一起

python - 如何在 Django-AllAuth 中使用/accounts/url 模式之外的注册表单?

Django rest framework JWT,删除jwt token

python - 我的 Django 应用程序可以充当 header 剥离代理吗?

django - 如何将类属性添加到 ModelForm

django - 为什么我的 django/psql 站点如此缓慢?

python - Paho mqtt 客户端无法正常工作

python - 多处理 : pool: wait for all results, 但立即处理单个结果

python - 使用 pandas 和字典中的数据生成加权平均值?

python - 将 pandas 数据框传递给类