Slide 26
Slide 26 text
from django import http
from django.views import generic
from django.contrib import messages
from . import forms, acl, platform
class CreateAccount(generic.FormView):
template_name = "new_account_form.html"
form_class = forms.Account
def dispatch(self, request, *args, **kwargs):
if not acl.can_user_create_account(request.user):
return http.HttpResponseForbidden()
return super(CreateAccount, self).dispatch(request, *args, **kwargs)
def form_valid(self, form):
try:
platform.create_account(**form.cleaned_data)
except platform.ServiceUnavailable as e:
form.add_error(None, unicode(e))
return self.form_invalid(form)
messages.success(self.request, "Account created")
return http.HttpResponseRedirect('/')