django-registration-redux add extra field

后端 未结 2 1249
挽巷
挽巷 2020-12-15 14:14

7 and python 2.7. i want to add extra field in django registration. i try to extend with my model like this:

class Seller(models.Model):
user            = mo         


        
2条回答
  •  难免孤独
    2020-12-15 15:15

    It's works for me:
    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)
    

    forms.py

    from registration.forms import RegistrationFormUniqueEmail
    from django import forms
    
    class UserProfileRegistrationForm(RegistrationFormUniqueEmail):
        field = forms.CharField()
    

    Create regbackend.py and write:

    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
    

    And urls.py

    from django.conf.urls import include, url
    import regbackend
    
    urlpatterns = [
    url(r'^accounts/register/$', regbackend.MyRegistrationView.as_view(), name='registration_register'),
    ]
    

提交回复
热议问题