@BogBel

NotImplementedError, Добавление кастомных полей в django-registration?

Добрый вечер. Я уже тут спрашивал по поводу, добавления двух полей в стандратную форму django-registration(не redux). Суть вопроса: необходимо дать пользователю на ровне с username , password , email вводить имеющиейся в стандартном User классе last_name, first_name.
И так что было сделано:
forms.py
from registration.forms import RegistrationForm
from django.forms.fields import CharField
from django.contrib.auth.models import User


class UpdatedRegistrationForm(RegistrationForm):
    first_name = CharField(max_length=20)
    last_name = CharField(max_length=30)

    class Meta:
        model = User
        fields = ('username', 'email', 'password1', 'password2')

    def save(self, commit = True):
        user = super(UpdatedRegistrationForm, self).save(commit=False)
        user.first_name = self.cleaned_data['first_name']
        user.last_name = self.cleaned_data['last_name']
        if commit:
            user.save()
            return user

urls.py
from django.conf.urls import include, url
from django.contrib import admin
from accounts.views import home_page, admin_panel
from accounts.forms import UpdatedRegistrationForm
from registration.views import RegistrationView


class RegistrationViewUniqueEmail(RegistrationView):
    form_class = UpdatedRegistrationForm

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^home/', home_page),
    url(r'^admin_pannel/',admin_panel),
    url(r'^register/$', RegistrationViewUniqueEmail.as_view(), name='registration_register'),
    url(r'', include('registration.backends.simple.urls')),
    url(r'', include('social_auth.urls')),


]

При запуске сервера и перехода на /register/ действительно теперь помимо стандартных username, password1, password2, email отображаются еще и желаемые first_name , last_name
247ce70e83004b4dacde46bcd6504b01.png
После чего отправляем данные и получаем следующее:
61a415d0ae844b5188ce373803057eb7.png
cd2a7d7ab75245129cf27ecbb6343ff7.png
Но данные отправляются , это видно в теле запроса
58d6db2eac1146a2875f74fa0b23aa64.png
Как гипотезу, предполагаю что возможно проблема в не переопределенном __init__() для моей формы. Но это лишь гипотеза. Буду благодарен за правки, и за дельные советы.
  • Вопрос задан
  • 348 просмотров
Пригласить эксперта
Ответы на вопрос 1
crazyzubr
@crazyzubr
Python backend-developer
Здесь явно ошибка
if commit:
    user.save()
    return user

Нужно так:
if commit:
    user.save()
return user


А причина ошибки той, что на скринах в том, что надо импортировать в urls.py
from registration.backends.default.views import RegistrationView
а не from registration.views import RegistrationView
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы