django-registration-redux添加额外字段

Use*_*511 5 python django django-registration

7和python 2.7.我想在django注册中添加额外的字段.我试着像我这样扩展我的模型:

class Seller(models.Model):
user            = models.ForeignKey(User, unique=True)
name            = models.CharField(max_length=25)
phone_number    = models.BigIntegerField()
email           = models.EmailField(max_length=75)

def __str__(self):
    return self.name;
Run Code Online (Sandbox Code Playgroud)

我添加像这样的form.py

    from django import forms
    from registration.forms import RegistrationForm
    from django.forms import ModelForm
    from django.contrib.auth.models import User
    from kerajinan.models import Product, Category, Seller

    class SellerForm(forms.ModelsForm):
        class Meta:
            model   = Seller
            fields  = ('name','phone_number','email')
Run Code Online (Sandbox Code Playgroud)

并修改url.py,如下所示:

url(r'^accounts/', 'registration.views.register',{'form_class':SellerForm,'backend': 'registration.backends.default.DefaultBackend'})
Run Code Online (Sandbox Code Playgroud)

如何使用这些模型与django注册,我得到我的ulr.py错误语法?

谢谢

Dim*_*osh 7

它对我
有用:models.py

from django.db import models
from django.contrib.auth.models import User

class UserProfile(models.Model):
    field = models.CharField(max_length=3)
    user = models.OneToOneField(User)
Run Code Online (Sandbox Code Playgroud)

forms.py

from registration.forms import RegistrationFormUniqueEmail
from django import forms

class UserProfileRegistrationForm(RegistrationFormUniqueEmail):
    field = forms.CharField()
Run Code Online (Sandbox Code Playgroud)

创建regbackend.py并写:

from registration.backends.default.views import RegistrationView
from forms import UserProfileRegistrationForm
from models import UserProfile

class MyRegistrationView(RegistrationView):

    form_class = UserProfileRegistrationForm

    def register(self, request, form_class):
        new_user = super(MyRegistrationView, self).register(request, form_class)
        user_profile = UserProfile()
        user_profile.user = new_user
        user_profile.field = form_class.cleaned_data['field']
        user_profile.save()
        return user_profile
Run Code Online (Sandbox Code Playgroud)

和urls.py

from django.conf.urls import include, url
import regbackend

urlpatterns = [
url(r'^accounts/register/$', regbackend.MyRegistrationView.as_view(), name='registration_register'),
]
Run Code Online (Sandbox Code Playgroud)