from django.contrib.auth import login, authenticate from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.models import User from django.contrib.auth.views import LoginView from django.urls import reverse_lazy from django.views.generic import FormView, TemplateView from .forms.auth import ExtendedAuthenticationForm, ExtendedUserCreationForm class ExtendedLoginView(LoginView): form_class = ExtendedAuthenticationForm class RegisterView(FormView): template_name = 'registration/register.html' form_class = ExtendedUserCreationForm success_url = reverse_lazy('register_done') def form_valid(self, form): form.save() username = form.cleaned_data.get('username') password = form.cleaned_data.get('password1') user = authenticate(username=username, password=password) login(self.request, user) return super().form_valid(form) def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['is_first_user'] = (User.objects.count() == 0) return context class RegisterDoneView(LoginRequiredMixin, TemplateView): template_name = 'registration/register_done.html'