Django-registration, custom registration and validation

user2947856

After some days on this problem, i need of your help !

I need of two different registration form in extending django-registration form.

My urls.py :

from django.conf.urls import patterns, url, include
from views import RegistrationViewCandidate, RegistrationViewCompany

urlpatterns = patterns('',
        url(r'accounts/register/company$', RegistrationViewCompany.as_view(), name='registration_company'),
        url(r'accounts/register/candidate$', RegistrationViewCandidate.as_view(), name='registration_candidate'),
        url(r'accounts/', include('registration.backends.default.urls')),
)

My views.py :

# -*- coding: utf-8 -*-
from django.core.urlresolvers import reverse_lazy as _
from registration.forms import RegistrationForm
from registration.views import RegistrationView
from models import Candidate, Company
from django import forms
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Submit, Layout, Field, Fieldset
from crispy_forms.bootstrap import (PrependedText, PrependedAppendedText, FormActions)


class CandidateForm(forms.ModelForm):

    class Meta:
        model = Candidate
        fields = ('first_name', 'last_name', 'candidate_city', 'candidate_region', 'candidate_phone',
                   'candidate_birthday','candidate_website_url', 'candidate_github_url')


class CompanyForm(forms.ModelForm):

    class Meta:
        model = Company
        fields = ('comp_name', 'comp_address', 'comp_email', 'comp_region',  'comp_zip', 'comp_phone',
                  'comp_description', 'comp_city', 'comp_country', 'comp_website_url', 'comp_twitter_url',
                  'comp_fcbk_url')


class CustomCandidateForm(RegistrationForm):
    user_class_model = forms.CharField(initial="Candidate", label="user_class_model")
    first_name = forms.CharField()
    last_name = forms.CharField()
    candidate_region = forms.CharField()
    candidate_city = forms.CharField()
    candidate_birthday = forms.DateField()
    candidate_phone = forms.CharField()
    candidate_website_url = forms.URLField(required=False)
    candidate_github_url = forms.URLField(required=False)

    def __init__(self, *args, **kwargs):
        super(CustomCandidateForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.form_method = 'POST'
        self.helper.form_class = 'form-horizontal'
        self.helper.form_action = ''
        self.helper.label_class = 'col-sm-2'
        self.helper.field_class = 'col-sm-4'
        self.helper.layout = Layout(
            Fieldset(
                'Account details',
                Field('user_class_model'),
                Field('username', css_class='input-sm'),
                Field('email', css_class='input-sm'),
                Field('password1'),
                Field('password2'),
            ),
            Fieldset(
                'Personnal Informations ',
                Field('first_name', css_class='input-sm'),
                Field('last_name', css_class='input-sm'),
                Field('candidate_region', label='Region'),
                Field('candidate_city', label='City'),
                Field('candidate_birthday'),
                Field('candidate_phone'),
                Field('candidate_website_url'),
                Field('candidate_github_url'),
            ),

        )
        self.helper.add_input(Submit('submit', 'Submit', css_class='btn-primary'))


class CustomCompanyForm(RegistrationForm):
    user_class_model = forms.CharField(initial="Company", label="user_class_model")


class RegistrationViewCompany(RegistrationView):
    form_class = CustomCompanyForm


class RegistrationViewCandidate(RegistrationView):
    form_class = CustomCandidateForm

CustomCandidateForm.base_fields.update(CandidateForm.base_fields)
CustomCompanyForm.base_fields.update(CompanyForm.base_fields)

Like as you seen, i extend RegistrationView and RegistrationForm. My problem is on this line :

self.helper.form_action = ''

With this parameter for form_action, if i have an error in my form, i am redirect on the form with the raise error about the field in error. Perfect, but if i don't have errors in my form (if my form is clean), django-registration raise this error :

NotImplementedError at /user/accounts/register/candidate

No exception supplied

Request Method:     POST
Request URL:    http://127.0.0.1:8000/user/accounts/register/candidate
Django Version:     1.5.4
Exception Type:     NotImplementedError
Exception Location:     /home/damien/Developpements/Django/virtualenv/lib/python2.7/site-packages/registration/views.py in register, line 109
Python Executable:  /home/damien/Developpements/Django/virtualenv/bin/python2.7
Python Version:     2.7.4
Python Path:    

['/home/damien/Developpements/Django/virtualenv/site_web/linuxemploi',
 '/home/damien/Developpements/Django/virtualenv/site_web/linuxemploi',
 '/home/damien/Developpements/Django/virtualenv/lib/python2.7',
 '/home/damien/Developpements/Django/virtualenv/lib/python2.7/plat-x86_64-linux-gnu',
 '/home/damien/Developpements/Django/virtualenv/lib/python2.7/lib-tk',
 '/home/damien/Developpements/Django/virtualenv/lib/python2.7/lib-old',
 '/home/damien/Developpements/Django/virtualenv/lib/python2.7/lib-dynload',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-x86_64-linux-gnu',
 '/usr/lib/python2.7/lib-tk',
 '/home/damien/Developpements/Django/virtualenv/lib/python2.7/site-packages']

Server time:    sam, 2 Nov 2013 14:47:26 +0100

Traceback:
File "/home/damien/Developpements/Django/virtualenv/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  115.                         response = callback(request, *callback_args, **callback_kwargs)
File "/home/damien/Developpements/Django/virtualenv/lib/python2.7/site-packages/django/views/generic/base.py" in view
  68.             return self.dispatch(request, *args, **kwargs)
File "/home/damien/Developpements/Django/virtualenv/lib/python2.7/site-packages/registration/views.py" in dispatch
  79.         return super(RegistrationView, self).dispatch(request, *args, **kwargs)
File "/home/damien/Developpements/Django/virtualenv/lib/python2.7/site-packages/django/views/generic/base.py" in dispatch
  86.         return handler(request, *args, **kwargs)
File "/home/damien/Developpements/Django/virtualenv/lib/python2.7/site-packages/registration/views.py" in post
  35.             return self.form_valid(request, form)
File "/home/damien/Developpements/Django/virtualenv/lib/python2.7/site-packages/registration/views.py" in form_valid
  82.         new_user = self.register(request, **form.cleaned_data)
File "/home/damien/Developpements/Django/virtualenv/lib/python2.7/site-packages/registration/views.py" in register
  109.         raise NotImplementedError

Exception Type: NotImplementedError at /user/accounts/register/candidate
Exception Value: 

If i put :

 self.helper.form_action = '.'

I have not error raise by django-registration, but if i have an error in my form (form is not clean), i am redirect on /user/accounts/register and not /user/accounts/register*/candidate* or /company.

Any ideas ?

Thanks very much

alko

It is straightforward from exception, that you have to implement register(request, **form.cleaned_data) method in your RegistrationViewCandidate class. This method must implement your custom registration logic and hence is not implemented in django-registration RegistrationView

Probably, you wanted to modify existing implementation, say from django-registration simple backend. Then you should have subclassed RegistratioView from registration.backends.simple.views instead of that from registration.views that you did.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Django-registration, custom registration and validation

From Dev

Django custom registration form

From Dev

Custom Wordpress Registration Form with Validation

From Dev

Janrain custom js validation for registration

From Dev

Laravel custom validation on registration form

From Dev

Django Registration Redux custom registration form

From Dev

Devise custom validation for a custom field in the registration form

From Dev

Custom Email Validation in Wordpress/BuddyPress Registration

From Dev

Creating Custom user registration form Django

From Dev

Adding custom user registration fields in django

From Dev

Django Registration Registration_form

From Dev

Email Registration validation in PHP

From Dev

Jquery email validation in registration

From Dev

Django Registration or or django auth?

From Dev

ServiceStack Custom Registration

From Dev

Custom registration with Laravel 5.1

From Dev

Custom registration with Laravel 5.1

From Dev

Custom Login Registration in wordpress

From Dev

DOSGI Custom Provider Registration

From Dev

How to subclass registration form in django-registration

From Dev

Django registration redux registration only with email (no password)

From Dev

Django registration redux registration only with email (no password)

From Dev

How to make required=false in Django registration custom fields for particular case

From Dev

Issue with dynamically populating dropdownlist for a field in django custom user registration form

From Dev

form.isValid() always return false in custom registration form django

From Dev

Django Registration and Authenticate

From Dev

Django-registration not registering

From Dev

Django CSRF Error for Registration

From Dev

Django registration is not working

Related Related

  1. 1

    Django-registration, custom registration and validation

  2. 2

    Django custom registration form

  3. 3

    Custom Wordpress Registration Form with Validation

  4. 4

    Janrain custom js validation for registration

  5. 5

    Laravel custom validation on registration form

  6. 6

    Django Registration Redux custom registration form

  7. 7

    Devise custom validation for a custom field in the registration form

  8. 8

    Custom Email Validation in Wordpress/BuddyPress Registration

  9. 9

    Creating Custom user registration form Django

  10. 10

    Adding custom user registration fields in django

  11. 11

    Django Registration Registration_form

  12. 12

    Email Registration validation in PHP

  13. 13

    Jquery email validation in registration

  14. 14

    Django Registration or or django auth?

  15. 15

    ServiceStack Custom Registration

  16. 16

    Custom registration with Laravel 5.1

  17. 17

    Custom registration with Laravel 5.1

  18. 18

    Custom Login Registration in wordpress

  19. 19

    DOSGI Custom Provider Registration

  20. 20

    How to subclass registration form in django-registration

  21. 21

    Django registration redux registration only with email (no password)

  22. 22

    Django registration redux registration only with email (no password)

  23. 23

    How to make required=false in Django registration custom fields for particular case

  24. 24

    Issue with dynamically populating dropdownlist for a field in django custom user registration form

  25. 25

    form.isValid() always return false in custom registration form django

  26. 26

    Django Registration and Authenticate

  27. 27

    Django-registration not registering

  28. 28

    Django CSRF Error for Registration

  29. 29

    Django registration is not working

HotTag

Archive