我一直在尝试让 django-registration 使用视图 RegistrationFormUniqueEmail 并遵循此解决方案django-注册问题。我已将 urls.py 设置为
from django.conf.urls import patterns, include, url
from registration.forms import RegistrationFormUniqueEmail
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
(r'^users/', include('registration.backends.default.urls')),
url(r'^users/register/$', 'registration.backends.default.views.RegistrationView',
{'form_class': RegistrationFormUniqueEmail,
'backend': 'registration.backends.default.DefaultBackend'},
name='registration_register'),
)
但是,我仍然可以使用同一电子邮件创建多个帐户。问题是什么? django-registration 不应该使用我指定的视图吗?我目前使用 django-registration 0.9b1。
您正在使用的 Django 注册版本已被重写为使用基于类的视图。这意味着您的 urls.py 中需要采用不同的方法。
首先,您需要子类化 RegistrationView,并设置自定义表单类。
from registration.backends.default.views import RegistrationView
from registration.forms import RegistrationFormUniqueEmail
class RegistrationViewUniqueEmail(RegistrationView):
form_class = RegistrationFormUniqueEmail
然后,在您的网址中使用您的自定义 RegistrationViewUniqueEmail 子类。与其他基于类的视图一样,您必须调用 as_view()。
url(r'^user/register/$', RegistrationViewUniqueEmail.as_view(),
name='registration_register'),
确保您的自定义registration_register 视图出现在包含默认注册url 之前,否则它将不会被使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)