Im trying to implement two user types while using all-auth out of the box with django 1.11 cookiecutter. Ive tried the solution here Multiple user type sign up with django-allauth
But the seeker type one to one relationship is never created only the user.
Anyone implement this before?
TIA
Models
from django.contrib.auth.models import AbstractUser
from django.core.urlresolvers import reverse
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
from django.utils.translation import ugettext_lazy as _
import config.settings.base as settings
@python_2_unicode_compatible
class User(AbstractUser):
# First Name and Last Name do not cover name patterns
# around the globe.
name = models.CharField(_('Name of User'), blank=True, max_length=255)
def __str__(self):
return self.username
def get_absolute_url(self):
return reverse('users:detail', kwargs={'username': self.username})
class Seeker(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
user_location = models.ForeignKey('location.Location', null=True, blank=True)
class Meta:
verbose_name = "Seeker"
verbose_name_plural = "Seekers"
def __str__(self):
return self.user.username
Form
from allauth.account.forms import SignupForm
from .models import Seeker, Employer
class SeekerSignUpForm(SignupForm):
def save(self, request):
# Save the User instance and get a reference to it
user_seeker = super(SeekerSignUpForm, self).save(request)
# Create an instance of your model with the extra fields
# then save it.
# (N.B: the are already cleaned, but if you want to do some
# extra cleaning just override the clean method as usual)
seeker_user = Seeker.objects.get_or_create(user=user_seeker)
seeker_user.save()
return seeker_user.user
View
class SeekerSignupView(SignupView):
template_name = 'account/signup_seeker.html'
form_class = SeekerSignUpForm
view_name = 'seeker_signup'