我是 Django 新手,正在尝试为新用户构建一个需要以下步骤的社交网站:
填写注册表 -> 填写一些个人资料表格 -> 通过电子邮件验证帐户 -> 使用
pip 已安装 Django 1.5.4。
我的问题是:对于这个场景,我应该使用Django-registraion还是本地 Django-auth 或其他模块?您会推荐哪个选项,为什么?
我是 Django 新手,正在尝试为新用户构建一个需要以下步骤的社交网站:
填写注册表 -> 填写一些个人资料表格 -> 通过电子邮件验证帐户 -> 使用
pip 已安装 Django 1.5.4。
我的问题是:对于这个场景,我应该使用Django-registraion还是本地 Django-auth 或其他模块?您会推荐哪个选项,为什么?
这实际上取决于您想要拥有的定制级别。
注册表可能看起来有点像不同 Django 项目之间的重复性任务,并且它考虑到大多数注册过程都需要相同的基本步骤。但是,对于不同的项目,您可能需要扩展或排除某些步骤。
这是我用于注册的视图示例:
def register(request):
if request.method == 'POST':
register_form = RegisterForm(request.POST)
if register_form.is_valid():
data = register_form.data
# create user
user = User.objects.create_user(
username=data.get('username'),
email=data.get('email'),
password=data.get('password'),
)
if user is not None:
auth = authenticate(username=data.get('username'), password=data.get('password'))
login(request, auth)
messages.success(request, _('Your new user has been created.'))
return redirect(reverse('home'))
else:
messages.error(request, _('Oops! Error.'))
else:
register_form = RegisterForm()
return render(request, 'accounts/register.html')
这几乎适用于我所有的项目。RegisterForm
拥有所有的魔力。
django-allauth 是一个相当完整的解决方案。即使您对社交登录和集成功能不感兴趣,也可以轻松处理用户注册、个人资料、电子邮件验证等。