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错误语法?
谢谢
它对我
有用: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)
| 归档时间: |
|
| 查看次数: |
3765 次 |
| 最近记录: |