Question

I use Django 1.5 + django-registration 0.9...

How to make email field unique in model User?

from registration.forms import RegistrationFormUniqueEmail

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

This solution is not suitable

Could not import registration.views.register. View does not exist in module registration.views.
Was it helpful?

Solution

Many thanks, @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'),
    ...

OTHER TIPS

Another approach is to pass the form class into the as_view() method directly as in the following example:

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

A complete urls.py for this:

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'))
)

I've also create a complete demo for django-registration, which enables unique email feature , see: https://github.com/xiaohanyu/django-registration-demo

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top