Django/Python寄存器pag

2024-03-29 09:13:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为我的django(2.0版)网站做一个注册页面,但它对我来说相当混乱,我很确定要点和附加信息不应该马上出现。你知道吗

如何使注册页面看起来更干净?也就是说,只有用户名,密码和确认文本框,而不是所有的消息。你知道吗

谢谢!你知道吗

enter image description here

你知道吗注册.html你知道吗

<h2>Sign up</h2>
<br>
<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Sign up</button>
</form>

注册视图

def register(request):
    if request.method == 'POST':
        form = UserCreationForm(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('index')
    else:
        form = UserCreationForm()
    return render(request, 'todo/register.html', {'form': form})

Tags: formregisterifrequesthtmlusernamebuttonpassword
2条回答

有很多方法可以实现这一点。你知道吗

  1. 重写默认值UserCreationForm()

    class MyForm(UserCreationForm): email = forms.EmailField(required=True) email.help_text = '' ...

  2. 在视图模板中,而不是使用{{ form.as_p }}手动呈现表单

    <form action="" method="post">{% csrf_token %} {{ form.username.label }} {{ form.username }} ... </form>

  3. 设计自定义模板并将字段名映射到表单字段名。

希望有帮助!你知道吗

您没有指定这个UserCreationForm来自何处,也没有指定django版本,但无论如何:搜索django的代码源,似乎这些是默认contrib.auth.forms.UserCreationForm的各种小部件/字段的帮助文本,所以“要点和附加信息”实际上“应该马上显示”。就我而言(从用户的角度来看,我的意思是)它确实“马上出现”是件好事,所以我不必重复输入用户名和密码两次、三次或更多,直到我通过尝试/错误发现系统所期望的(或者,更多的时候,干脆放弃在这个网站上注册)。你知道吗

现在,如果你真的想挫败你的用户(并在途中失去他们的一半),你当然可以通过rendering the form manually屏蔽所有有用的信息,这样你就可以完全控制消息的出现时间、地点和方式。你知道吗

相关问题 更多 >