Django注册,强制独特的电子邮件

DJP*_*hon 16 python django

我可以强制用户在django-registration中创建唯一的电子邮件地址吗?

sed*_*nym 16

对于更高版本的django_registration(使用基于类的视图),您可以这样做:

from registration.forms import RegistrationFormUniqueEmail
from registration.backends.default.views import RegistrationView

urlpatterns = patterns('',
    url(r'^register/$',
        RegistrationView.as_view(form_class=RegistrationFormUniqueEmail),
        name='registration_register'),
)
Run Code Online (Sandbox Code Playgroud)


rai*_*san 13

从rych的回答中,我测试了以下运行正常 - 它只使用urls.py,你不需要写另一个cusotmer表单.

from registration.forms import RegistrationFormUniqueEmail

url(r'^accounts/register/$', 'registration.views.register',
    {'form_class': RegistrationFormUniqueEmail,
     'backend': 'registration.backends.default.DefaultBackend'},       
     name='registration_register'),
Run Code Online (Sandbox Code Playgroud)


mik*_*iku 5

django-registration有几种形式包含在源代码中 - 一种是a RegistrationFormUniqueEmail,可能对你有所帮助......


PS您可以通过更改默认后端或通过实现自定义后端来调整要使用的表单,您可以在其中返回相应的表单类,请参阅:http://bitbucket.org/ubernostrum/django-registration/src/073835a4269f/registration/后端/默认/ init .py#cl-118


Joh*_*rra 2

从您的用户模型创建注册表就足够了。如果电子邮件地址被定义为唯一,则表单将在提交重复地址时输出错误。

查看此处了解详细信息。

正如多米尼克指出的那样,您将无法使用内置用户配置文件来执行此操作。您必须按照此处所述创建自己的用户配置文件来扩展它,并使其包含唯一的电子邮件地址。