Django注册还是Django认证?
我是Django的新手,正在尝试为新用户建立一个需要以下步骤的社交网站: 填写注册表格->填写一些个人资料表格->通过电子邮件验证帐户->使用 pip已经安装了Django 1.5.4Django注册还是Django认证?,django,django-registration,Django,Django Registration,我是Django的新手,正在尝试为新用户建立一个需要以下步骤的社交网站: 填写注册表格->填写一些个人资料表格->通过电子邮件验证帐户->使用 pip已经安装了Django 1.5.4 我的问题是:对于这个场景,我应该使用本地Django auth还是其他模块?您会推荐哪个选项?为什么?这实际上取决于您想要的定制级别 注册表单可能看起来有点像不同Django项目之间的重复任务,它考虑到大多数注册过程都需要相同的基本步骤。但是,对于不同的项目,您可能需要扩展或排除某些步骤 这是我用于注册的视图示例
我的问题是:对于这个场景,我应该使用本地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项目之间的重复任务,它考虑到大多数注册过程都需要相同的基本步骤。但是,对于不同的项目,您可能需要扩展或排除某些步骤
这是我用于注册的视图示例:
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')
这几乎适用于我所有的项目RegisterPerform具有所有的魔力。django allauth是一个相当完整的解决方案。即使您对社交登录和集成功能不感兴趣,也可以非常轻松地处理用户注册、配置文件、电子邮件验证等。django allauth是一个相当完整的解决方案。即使您对社交登录和集成功能不感兴趣,也可以非常轻松地处理用户注册、配置文件、电子邮件验证等。我更喜欢使用auth进行验证,主要是出于教育原因,但有点担心通过电子邮件管理注册验证。你是怎么做到的?有多种方法。您可以创建一个模型,该模型有一个OneToOne字段给用户,另一个字段包含验证密钥。在“我的答案”中的“注册”视图中,创建验证模型的新实例,并向用户发送电子邮件,其中包含要验证的链接。创建一个视图和一个URL来检查模型中的键,然后执行其余的操作。另一种方法是缓存您的密钥并避免使用模型/表。我更喜欢使用auth来实现这一点,主要是出于教育原因,但有点担心通过电子邮件管理注册验证。你是怎么做到的?有多种方法。您可以创建一个模型,该模型有一个OneToOne字段给用户,另一个字段包含验证密钥。在“我的答案”中的“注册”视图中,创建验证模型的新实例,并向用户发送电子邮件,其中包含要验证的链接。创建一个视图和一个URL来检查模型中的键,然后执行其余的操作。另一种方法是缓存密钥并避免模型/表。