Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- project
- ├── config
- | ├── settings
- | | └── base.py
- | ├── urls.py
- | └── wsgi.py
- ├── core
- | ├── models.py
- | ├── urls.py
- | └── views.py
- ├── members
- | ├── migrations
- | ├── static
- | ├── templates
- | ├── forms.py
- | ├── models.py
- | ├── urls.py
- | └── views.py
- └── templates
- ├── pages
- | └── register.html
- └── base.html
- AUTH_USER_MODEL = 'members.MyUser'
- ACCOUNT_AUTHENTICATION_METHOD = 'email'
- ACCOUNT_SIGNUP_PASSWORD_VERIFICATION = True
- ACCOUNT_USER_MODEL_USERNAME_FIELD = None
- ACCOUNT_EMAIL_VERIFICATION = 'none'
- ACCOUNT_USERNAME_REQUIRED = False
- SOCIALACCOUNT_QUERY_EMAIL = True
- ACCOUNT_EMAIL_REQUIRED = True
- ACCOUNT_LOGOUT_ON_GET = True
- ACCOUNT_UNIQUE_EMAIL = True
- from django.contrib.auth.base_user import AbstractBaseUser
- from django.contrib.auth.models import UserManager, PermissionsMixin
- from django.utils.translation import ugettext_lazy as _
- from django.utils import timezone
- from django.db import models
- class MyUserManager(UserManager):
- def create_user(self, email, password=None, **kwargs):
- user = self.model(email=email, **kwargs)
- user.set_password(password)
- user.save()
- return user
- def create_superuser(self, email, password, **kwargs):
- user = self.model(email=email, is_staff=True, is_superuser=True, **kwargs)
- user.set_password(password)
- user.save()
- return user
- class MyUser(AbstractBaseUser, PermissionsMixin):
- email = models.EmailField(_('email address'), blank=False, unique=True)
- first_name = models.CharField(_('first name'), max_length=40, blank=True, null=True, unique=False)
- last_name = models.CharField(_('last name'), max_length=40, blank=True, null=True, unique=False)
- is_staff = models.BooleanField(
- _('staff status'),
- default=False,
- help_text=_('Designates whether the user can log into this admin '
- 'site.')
- )
- is_active = models.BooleanField(
- _('active'),
- default=True,
- help_text=_('Designates whether this user should be treated as '
- 'active. Unselect this instead of deleting accounts.')
- )
- date_joined = models.DateTimeField(_('date joined'), default=timezone.now)
- # extend the base model here
- is_subscriber = models.BooleanField(_('subscriber'), default=False)
- objects = MyUserManager()
- USERNAME_FIELD = 'email'
- REQUIRED_FIELDS = []
- class Meta:
- verbose_name = _('user')
- verbose_name_plural = _('users')
- db_table = 'auth_user'
- abstract = False
- def get_full_name(self):
- full_name = '%s %s' % (self.first_name, self.last_name)
- return full_name.strip()
- def get_short_name(self):
- return self.first_name
- from django import forms
- from django.contrib.auth import get_user_model
- from allauth.account.forms import SignupForm
- class MySignupForm(SignupForm):
- # additional fields
- subscribe = forms.BooleanField()
- def __init__(self, *args, **kwargs):
- super(MySignupForm, self).__init__(*args, **kwargs)
- class Meta:
- model = get_user_model()
- fields = (
- 'email',
- 'password1',
- 'password2',
- 'subscribe',
- )
- def save(self, user):
- # user.is_subscriber = self.cleaned_data['subscribe']
- user.is_subscriber = 1 # PERMANENT SET TO 1 JUST FOR TEST
- user.save()
- return user
- from django.shortcuts import redirect
- from django.views.generic import TemplateView
- from members.forms import MySignupForm
- class Index(TemplateView):
- template_name = 'pages/index.html'
- class Register(TemplateView):
- template_name = 'pages/register.html'
- def get(self, request, *args, **kwargs):
- context = super(Register, self).get_context_data(**kwargs)
- if self.request.user.is_authenticated():
- return redirect('core:home')
- context.update({
- 'signup_form': MySignupForm(),
- })
- return self.render_to_response(context)
- <form id="signup_form" action="{% url 'account_signup' %}" method="post" enctype="multipart/form-data">
- {% csrf_token %}
- {{ signup_form.email }}
- {{ signup_form.password1 }}
- {{ signup_form.password2 }}
- {{ signup_form.subscribe }}
- <button type="submit" class="btn btn-primary">REGISTER</button>
- </form>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement