【问题标题】:Django 1.5: django-registration email a unique field?Django 1.5:django-registration email 一个独特的字段?
【发布时间】:2013-05-19 00:44:40
【问题描述】:

我使用 Django 1.5 + django-registration 0.9...

如何使模型用户中的电子邮件字段唯一?

from registration.forms import RegistrationFormUniqueEmail

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

这个方案不合适

Could not import registration.views.register. View does not exist in module registration.views.

【问题讨论】:

标签: django django-registration


【解决方案1】:

非常感谢,@Alasdair How to use different view for django-registration?

urls.py:

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

class RegistrationViewUniqueEmail(RegistrationView):
    form_class = RegistrationFormUniqueEmail

urlpatterns = patterns('',
    ....
    url(r'^user/register', RegistrationViewUniqueEmail.as_view(),
                    name='registration_register'),
    ...

【讨论】:

    【解决方案2】:

    另一种方法是将表单类直接传递给 as_view() 方法,如下例所示:

    url(r'^user/register/$', RegistrationView.as_view(
        form_class=RegistrationFormUniqueEmail),
        name='registration_register'),
    

    【讨论】:

      【解决方案3】:

      一个完整的 urls.py:

      from django.conf.urls import patterns, include, url
      from registration.forms import RegistrationFormUniqueEmail
      from registration.backends.default.views import RegistrationView
      
      from django.contrib import admin
      admin.autodiscover()
      
      urlpatterns = patterns('',
          # Examples:
          # url(r'^$', 'django_registration_demo.views.home', name='home'),
          # url(r'^blog/', include('blog.urls')),
      
          url(r'^admin/', include(admin.site.urls)),
          url(r'^accounts/', include('django.contrib.auth.urls')),
          # enable unique email registration feature
          url(r'^accounts/register/$',
              RegistrationView.as_view(form_class=RegistrationFormUniqueEmail),
              name='registration_register'),
          url(r'^accounts/', include('registration.backends.default.urls'))
      )
      

      我还为 django-registration 创建了一个完整的演示,它启用了独特的电子邮件功能,请参阅: https://github.com/xiaohanyu/django-registration-demo

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-01-21
        • 2011-03-11
        • 2014-03-02
        • 1970-01-01
        • 2017-04-26
        • 2015-06-19
        • 1970-01-01
        相关资源
        最近更新 更多