Django / Python注册页面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django / Python注册页面相关的知识,希望对你有一定的参考价值。

我正在为我的django(2.0版)网站制作一个注册页面,但这对我来说非常麻烦,我很确定要点并且附加信息不应该马上出现。

如何使此注册页面看起来更干净? IE浏览器。只是用户名,密码和确认文本框,而不是所有消息。

谢谢!

enter image description here

Register.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})
答案

有很多方法可以实现这一目标。

  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的各个小部件/字段的help_text,所以是“项目符号和附加信息”实际上“应该马上出现”。就我而言(从我的意思是用户的角度来看)它确实“立即显示”是一件好事,所以我不必重新输入两次,三次或更多的用户名和密码,直到我发现通过试验/错误系统预期(或者更常见的是,只是简单地放弃在此站点上注册)。

现在,如果你真的想要挫败你的用户(并且在途中松散了一半),你当然可以通过rendering the form manually掩盖所有有用的信息,这样你就可以完全控制哪些消息出现,何时,何地以及如何。

以上是关于Django / Python注册页面的主要内容,如果未能解决你的问题,请参考以下文章

Django / Python注册页面

Django电商网站--注册功能

Django框架进阶7 forms组件(pycharm内置测试环境Python Console), cookie与session操作

python-django电商项目_20191114

#yyds干货盘点# 简简单单实现 Python Web 的登录注册页面,还包含一半逻辑。

使用Python Django框架创建一个小型博客