提供自定义身份验证后端,以便用户可以通过电子邮件地址而不是用户名注册到站点。还为整个注册工作流提供了一组标准模板和sane url映射。
django-registration-email的Python项目详细描述
重要信息
==
由于放弃Django注册,此应用程序已停止。另外,市场上还有许多开发良好且更广泛的替代品。
why don't you't check out``django allauth`:https://github.com/pennersr/django allauth
它已经集成到我们的项目模板(包括模板和设置):https://github.com/bitmazk/django project template/
我们使用这个应用程序的方式。
=========
我们在几乎所有项目中都使用
[django注册](https://bitbucket.org/ubernostrum/django注册/overview)
。但是,我们不喜欢django有限的用户名
,我们希望允许用户通过电子邮件注册。
此项目提供自定义身份验证后端,允许用户通过电子邮件进行身份验证。我们还提供了一个emailregistrationform,它可以检查是否已经接收了电子邮件。
-注册
和django的auth,使用一个干净和合理的结构,您将找到一个默认的
所有必需的模板集。
用法
==
安装此包::
添加"注册"和"注册"电子邮件o您的"已安装的应用程序":所有其他应用程序
帐户激活天数=7
身份验证后端=(
"registration\u email.auth.emailbackend",
)
登录重定向URL='/'
运行``syncdb`:
./manage.py syncdb
设置
==
django注册电子邮件引入了一个新设置:
_ success_url
----------
默认值:``lambda request,user:'/```
函数返回成功激活帐户后重定向到的url
。如果您将此设置保留在"lambda request,user:"/"``中,则它将指向您的基本URL。
如果在"lambda请求"中保留此项,则用户:"/"``将
指向您的基本URL。
如何使用自定义表单
====
为了实现这一点,您需要执行以下操作:
在项目中创建一个自定义表单并给它一个"forms.py"
ilregistrationform):
first_name=form s.charfield()
last_name=forms.charfield()
不要重写表单的"save()"方法。
覆盖url u
现在您需要告诉注册视图它应该使用
自定义表单:
tomemailregistrationform
urlpatterns=[
…
url(
r'^accounts/register/$',
registration view.as廑view(
template廑name='registration/registration廑form.html',
form廑class=customemailregistrationform,
get_success_url=getattr(
设置,'registration_email_register_success_url',
lambda请求,用户:'/',
),
名称='registration_register',
),
url(r'^accounts/',包括de('registration_email.backends.default.url'),
…
]
在上面的"url.py"中创建一个信号处理程序,我使用的是"simplebackend"。当您查看[后端](https://github.com/nathanborror/django registration/blob/master/registration/backends/simple/\uu init_py_l30)时,您将看到在创建并登录
用户后,后端发送一个信号。信号将获取访问表单验证并发送的
数据所需的所有参数,因此让我们在my registration.models.py
from django.dispatch import receiver
from registration.signal s import user\注册
@receiver(user_registered)
def user_registered_handler(sender,user,request,**kwargs):
user.first_name=request.post.get('first_name')
user.last_name=request.post.get('last_name')
user.save()
确认您连续保存用户两次。如果
您担心性能问题,则必须创建自己的
`my_registration.backends.customregistrationbackend`类。该类将继承registration.backends.simple.simplebackend并重写register方法,但实际上,我们在这里讨论的是注册,我无法想象保存两次用户会有什么危害。/>如果您的
``settings.py``中有另一个值"authentication_backends`",那么它可能会保存在您的``django_session``
表中。除了删除表中的行之外,我找不到其他方法了。
todo
==
*密码重置链接指向原始django模板
==
由于放弃Django注册,此应用程序已停止。另外,市场上还有许多开发良好且更广泛的替代品。
why don't you't check out``django allauth`:https://github.com/pennersr/django allauth
它已经集成到我们的项目模板(包括模板和设置):https://github.com/bitmazk/django project template/
我们使用这个应用程序的方式。
我们在几乎所有项目中都使用
[django注册](https://bitbucket.org/ubernostrum/django注册/overview)
。但是,我们不喜欢django有限的用户名
,我们希望允许用户通过电子邮件注册。
此项目提供自定义身份验证后端,允许用户通过电子邮件进行身份验证。我们还提供了一个emailregistrationform,它可以检查是否已经接收了电子邮件。
-注册
和django的auth,使用一个干净和合理的结构,您将找到一个默认的
所有必需的模板集。
用法
==
安装此包::
添加"注册"和"注册"电子邮件o您的"已安装的应用程序":所有其他应用程序
帐户激活天数=7
身份验证后端=(
"registration\u email.auth.emailbackend",
)
登录重定向URL='/'
运行``syncdb`:
./manage.py syncdb
设置
==
django注册电子邮件引入了一个新设置:
_ success_url
----------
默认值:``lambda request,user:'/```
函数返回成功激活帐户后重定向到的url
。如果您将此设置保留在"lambda request,user:"/"``中,则它将指向您的基本URL。
如果在"lambda请求"中保留此项,则用户:"/"``将
指向您的基本URL。
如何使用自定义表单
====
为了实现这一点,您需要执行以下操作:
在项目中创建一个自定义表单并给它一个"forms.py"
ilregistrationform):
first_name=form s.charfield()
last_name=forms.charfield()
不要重写表单的"save()"方法。
覆盖url u
现在您需要告诉注册视图它应该使用
自定义表单:
tomemailregistrationform
urlpatterns=[
…
url(
r'^accounts/register/$',
registration view.as廑view(
template廑name='registration/registration廑form.html',
form廑class=customemailregistrationform,
get_success_url=getattr(
设置,'registration_email_register_success_url',
lambda请求,用户:'/',
),
名称='registration_register',
),
url(r'^accounts/',包括de('registration_email.backends.default.url'),
…
]
在上面的"url.py"中创建一个信号处理程序,我使用的是"simplebackend"。当您查看[后端](https://github.com/nathanborror/django registration/blob/master/registration/backends/simple/\uu init_py_l30)时,您将看到在创建并登录
用户后,后端发送一个信号。信号将获取访问表单验证并发送的
数据所需的所有参数,因此让我们在my registration.models.py
from django.dispatch import receiver
from registration.signal s import user\注册
@receiver(user_registered)
def user_registered_handler(sender,user,request,**kwargs):
user.first_name=request.post.get('first_name')
user.last_name=request.post.get('last_name')
user.save()
确认您连续保存用户两次。如果
您担心性能问题,则必须创建自己的
`my_registration.backends.customregistrationbackend`类。该类将继承registration.backends.simple.simplebackend并重写register方法,但实际上,我们在这里讨论的是注册,我无法想象保存两次用户会有什么危害。/>如果您的
``settings.py``中有另一个值"authentication_backends`",那么它可能会保存在您的``django_session``
表中。除了删除表中的行之外,我找不到其他方法了。
todo
==
*密码重置链接指向原始django模板