Advertisement
Guest User

Untitled

a guest
Feb 11th, 2016
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.41 KB | None | 0 0
  1. project
  2. ├── config
  3. | ├── settings
  4. | | └── base.py
  5. | ├── urls.py
  6. | └── wsgi.py
  7. ├── core
  8. | ├── models.py
  9. | ├── urls.py
  10. | └── views.py
  11. ├── members
  12. | ├── migrations
  13. | ├── static
  14. | ├── templates
  15. | ├── forms.py
  16. | ├── models.py
  17. | ├── urls.py
  18. | └── views.py
  19. └── templates
  20. ├── pages
  21. | └── register.html
  22. └── base.html
  23.  
  24. AUTH_USER_MODEL = 'members.MyUser'
  25.  
  26. ACCOUNT_AUTHENTICATION_METHOD = 'email'
  27. ACCOUNT_SIGNUP_PASSWORD_VERIFICATION = True
  28. ACCOUNT_USER_MODEL_USERNAME_FIELD = None
  29. ACCOUNT_EMAIL_VERIFICATION = 'none'
  30. ACCOUNT_USERNAME_REQUIRED = False
  31. SOCIALACCOUNT_QUERY_EMAIL = True
  32. ACCOUNT_EMAIL_REQUIRED = True
  33. ACCOUNT_LOGOUT_ON_GET = True
  34. ACCOUNT_UNIQUE_EMAIL = True
  35.  
  36. from django.contrib.auth.base_user import AbstractBaseUser
  37. from django.contrib.auth.models import UserManager, PermissionsMixin
  38. from django.utils.translation import ugettext_lazy as _
  39. from django.utils import timezone
  40. from django.db import models
  41.  
  42.  
  43. class MyUserManager(UserManager):
  44.  
  45. def create_user(self, email, password=None, **kwargs):
  46. user = self.model(email=email, **kwargs)
  47. user.set_password(password)
  48. user.save()
  49. return user
  50.  
  51. def create_superuser(self, email, password, **kwargs):
  52. user = self.model(email=email, is_staff=True, is_superuser=True, **kwargs)
  53. user.set_password(password)
  54. user.save()
  55. return user
  56.  
  57.  
  58. class MyUser(AbstractBaseUser, PermissionsMixin):
  59.  
  60. email = models.EmailField(_('email address'), blank=False, unique=True)
  61. first_name = models.CharField(_('first name'), max_length=40, blank=True, null=True, unique=False)
  62. last_name = models.CharField(_('last name'), max_length=40, blank=True, null=True, unique=False)
  63. is_staff = models.BooleanField(
  64. _('staff status'),
  65. default=False,
  66. help_text=_('Designates whether the user can log into this admin '
  67. 'site.')
  68. )
  69. is_active = models.BooleanField(
  70. _('active'),
  71. default=True,
  72. help_text=_('Designates whether this user should be treated as '
  73. 'active. Unselect this instead of deleting accounts.')
  74. )
  75. date_joined = models.DateTimeField(_('date joined'), default=timezone.now)
  76.  
  77. # extend the base model here
  78. is_subscriber = models.BooleanField(_('subscriber'), default=False)
  79.  
  80. objects = MyUserManager()
  81.  
  82. USERNAME_FIELD = 'email'
  83. REQUIRED_FIELDS = []
  84.  
  85. class Meta:
  86. verbose_name = _('user')
  87. verbose_name_plural = _('users')
  88. db_table = 'auth_user'
  89. abstract = False
  90.  
  91. def get_full_name(self):
  92. full_name = '%s %s' % (self.first_name, self.last_name)
  93. return full_name.strip()
  94.  
  95. def get_short_name(self):
  96. return self.first_name
  97.  
  98. from django import forms
  99. from django.contrib.auth import get_user_model
  100. from allauth.account.forms import SignupForm
  101.  
  102.  
  103. class MySignupForm(SignupForm):
  104. # additional fields
  105. subscribe = forms.BooleanField()
  106.  
  107. def __init__(self, *args, **kwargs):
  108. super(MySignupForm, self).__init__(*args, **kwargs)
  109.  
  110. class Meta:
  111. model = get_user_model()
  112. fields = (
  113. 'email',
  114. 'password1',
  115. 'password2',
  116. 'subscribe',
  117. )
  118.  
  119. def save(self, user):
  120. # user.is_subscriber = self.cleaned_data['subscribe']
  121. user.is_subscriber = 1 # PERMANENT SET TO 1 JUST FOR TEST
  122. user.save()
  123. return user
  124.  
  125. from django.shortcuts import redirect
  126. from django.views.generic import TemplateView
  127. from members.forms import MySignupForm
  128.  
  129.  
  130. class Index(TemplateView):
  131. template_name = 'pages/index.html'
  132.  
  133.  
  134. class Register(TemplateView):
  135. template_name = 'pages/register.html'
  136.  
  137. def get(self, request, *args, **kwargs):
  138. context = super(Register, self).get_context_data(**kwargs)
  139.  
  140. if self.request.user.is_authenticated():
  141. return redirect('core:home')
  142.  
  143. context.update({
  144. 'signup_form': MySignupForm(),
  145. })
  146. return self.render_to_response(context)
  147.  
  148. <form id="signup_form" action="{% url 'account_signup' %}" method="post" enctype="multipart/form-data">
  149. {% csrf_token %}
  150. {{ signup_form.email }}
  151. {{ signup_form.password1 }}
  152. {{ signup_form.password2 }}
  153. {{ signup_form.subscribe }}
  154. <button type="submit" class="btn btn-primary">REGISTER</button>
  155. </form>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement