Python 无法使用django注册扩展简单表单(NotImplementedError at/accounts/register/)
我正在尝试在我的项目中使用,我必须在注册表中添加两个额外的字段。我的django版本是1.6.2和python 2.7 我的Python 无法使用django注册扩展简单表单(NotImplementedError at/accounts/register/),python,django,django-forms,django-registration,Python,Django,Django Forms,Django Registration,我正在尝试在我的项目中使用,我必须在注册表中添加两个额外的字段。我的django版本是1.6.2和python 2.7 我的url.py: from django.conf.urls import patterns, include, url from registration.views import RegistrationView from common.forms import UserRegistrationForm import common.regbackend urlpatt
url.py
:
from django.conf.urls import patterns, include, url
from registration.views import RegistrationView
from common.forms import UserRegistrationForm
import common.regbackend
urlpatterns = patterns('',
# accounts
url(r'^accounts/register/$', RegistrationView.as_view(form_class=UserRegistrationForm),
{'backend': 'user_profile.backends.RegistrationBackend'},
name='registration_register'),
url(r'^accounts/', include('registration.backends.default.urls')),
# home
url(r'^$', 'home.views.home', name='home'),
)
from django.db import models
class Profile(models.Model):
key = models.CharField(max_length=100)
code = models.CharField(max_length=100)
def __unicode__(self):
return '%s' % self.key
class Meta:
ordering = ['key']
verbose_name = "Profile"
verbose_name_plural = "Profiles"
from django import forms
from registration.forms import RegistrationForm
class UserRegistrationForm(RegistrationForm):
key = forms.CharField(label='Key')
code = forms.CharField(label='VCode')
我的通用/models.py
:
from django.conf.urls import patterns, include, url
from registration.views import RegistrationView
from common.forms import UserRegistrationForm
import common.regbackend
urlpatterns = patterns('',
# accounts
url(r'^accounts/register/$', RegistrationView.as_view(form_class=UserRegistrationForm),
{'backend': 'user_profile.backends.RegistrationBackend'},
name='registration_register'),
url(r'^accounts/', include('registration.backends.default.urls')),
# home
url(r'^$', 'home.views.home', name='home'),
)
from django.db import models
class Profile(models.Model):
key = models.CharField(max_length=100)
code = models.CharField(max_length=100)
def __unicode__(self):
return '%s' % self.key
class Meta:
ordering = ['key']
verbose_name = "Profile"
verbose_name_plural = "Profiles"
from django import forms
from registration.forms import RegistrationForm
class UserRegistrationForm(RegistrationForm):
key = forms.CharField(label='Key')
code = forms.CharField(label='VCode')
我的通用/forms.py
:
from django.conf.urls import patterns, include, url
from registration.views import RegistrationView
from common.forms import UserRegistrationForm
import common.regbackend
urlpatterns = patterns('',
# accounts
url(r'^accounts/register/$', RegistrationView.as_view(form_class=UserRegistrationForm),
{'backend': 'user_profile.backends.RegistrationBackend'},
name='registration_register'),
url(r'^accounts/', include('registration.backends.default.urls')),
# home
url(r'^$', 'home.views.home', name='home'),
)
from django.db import models
class Profile(models.Model):
key = models.CharField(max_length=100)
code = models.CharField(max_length=100)
def __unicode__(self):
return '%s' % self.key
class Meta:
ordering = ['key']
verbose_name = "Profile"
verbose_name_plural = "Profiles"
from django import forms
from registration.forms import RegistrationForm
class UserRegistrationForm(RegistrationForm):
key = forms.CharField(label='Key')
code = forms.CharField(label='VCode')
最后,common/regbackend.py
from forms import *
from models import Profile
from common.forms import UserRegistrationForm
def user_created(sender, user, request, **kwargs):
print 'ok' # breakpoint here!
return
'''
form = UserRegistrationForm(request.POST)
data = Profile(user=user)
data.key = form.data["key"]
data.code = form.data["code"]
data.save()
'''
from registration.signals import user_registered
user_registered.connect(user_created)
当我填写表格并试图发送时,我收到了
NotImplementedError at/accounts/register/
我的应用程序从不在common/regbackend.py
文件中的断点处停止
回溯到此结束:
注册中的/Users/null/.virtualenvs/tools/lib/python2.7/site-packages/registration/views.py
在该功能中:
def register(self, request, **cleaned_data):
"""
Implement user-registration logic here. Access to both the
request and the full cleaned_data of the registration form is
available here.
"""
raise NotImplementedError
我已经尝试过搜索解决方案(尤其是,和),但大多数都使用django registration 0.8,我使用的是完全重写的v1.0,有些东西不像以前那样工作。我已尝试将其调整为v1.0,但仍然出现此错误。我应该怎么做才能消除这个错误?提前谢谢 当我填写表格并尝试发送时,我在/accounts/register/ 您的urls.py使其看起来像是在使用自定义注册后端(
user\u profile.backends.RegistrationBackend
)。您需要将用户注册的自定义逻辑(如register
方法上的docstring所示)添加到其注册视图中
根据应用程序的工作方式,让后端从包含的两个注册后端之一继承可能更有意义
我的应用程序从不在断点处停止
print语句与A语句不同:如果该语句已执行,它会将“ok”打印到控制台或日志,但应用程序不会停止或暂停
我尝试过寻找解决方案(特别是这个,这个和这个),但大多数都使用django注册0.8,我使用的是完全重写的v1.0,有些东西不像以前那样工作
对于您来说,从django注册迁移出去可能更有意义。发布了一个。Hm是的,我看到我在这里粘贴了错误的backed,并且我没有使用我的regbackend.py
,但是我从其他示例中看到,人们仍然在他们的url.py
中使用DefaultBackend
。。。。好的,我会尝试做一些不同的。。。我知道print语句不是断点:)但是,我的PyCharm中确实有一个断点:)也感谢您指出这个包不再维护,我不知道这一点=/