Python 无法使用django注册扩展简单表单(NotImplementedError at/accounts/register/)

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

我正在尝试在我的项目中使用,我必须在注册表中添加两个额外的字段。我的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

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中确实有一个断点:)也感谢您指出这个包不再维护,我不知道这一点=/