from django.contrib.auth.models import Group from django.contrib.auth import get_user_model from rest_framework import viewsets from api.serializers import UserSerializer, GroupSerializer from allauth.account.views import ConfirmEmailView class UserViewSet(viewsets.ModelViewSet): """ API endpoint that allows users to be viewed or edited. """ queryset = get_user_model().objects.all().order_by('-date_joined') serializer_class = UserSerializer class GroupViewSet(viewsets.ReadOnlyModelViewSet): """ API endpoint that allows groups to be viewed or edited. """ queryset = Group.objects.all() serializer_class = GroupSerializer class CustomConfirmEmailView(ConfirmEmailView): def get(self, *args, **kwargs): try: self.object = self.get_object() except Http404: self.object = None user = get_user_model().objects.get(email=self.object.email_address.email) redirect_url = reverse('user', args=(user.id,)) return redirect(redirect_url)