42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
from django.views.generic.edit import CreateView
|
|
from django.contrib.auth.models import User
|
|
from django.core.urlresolvers import reverse
|
|
from django.contrib.sites.models import get_current_site
|
|
from django.contrib.auth.tokens import default_token_generator
|
|
from django.template import loader
|
|
from django.utils.http import int_to_base36
|
|
|
|
from pastebin.views import LastesGeometriesMixin
|
|
|
|
from forms import UserCreateForm
|
|
|
|
class UserCreate(CreateView, LastesGeometriesMixin):
|
|
model = User
|
|
form_class = UserCreateForm
|
|
template_name = 'pastebin/geometry_create.html'
|
|
email_template_name = 'users/validate_email.txt'
|
|
|
|
def form_valid(self, form):
|
|
res = super(UserCreate, self).form_valid(form)
|
|
|
|
site_name = get_current_site(self.request).name
|
|
uid = int_to_base36(self.object.pk)
|
|
token = default_token_generator.make_token(self.object)
|
|
|
|
context = {
|
|
'email': self.object.email,
|
|
'site_name': site_name,
|
|
'validation_link': "%s - %s" % (uid, token),
|
|
'user': self.object
|
|
}
|
|
|
|
subject = "Validate your registration at %s" % site_name
|
|
email = loader.render_to_string(self.email_template_name, context)
|
|
self.object.email_user(subject,email)
|
|
|
|
return res
|
|
|
|
def get_success_url(self):
|
|
return reverse('login')
|
|
|