def post(self, request): serializer = self.serializer_class(data=request.data) if serializer.is_valid(): user = serializer.save() try: user = authenticate(email=user.email, password=request.data['password']) except User.MultipleObjectsReturned: users = User.objects.filter(email=user.email) for u in users[1:]: u.is_active = False u.save() user = users[0] token, created = Token.objects.get_or_create(user=user) Profile(owner=user).save() ProfileImage(owner=user).save() current_site = get_current_site(request) domain = current_site.domain ''''q = UserRegistered() q.delay(ctx={'user_id':user.id, 'first_name': user.first_name, 'domain': domain, 'protocol': settings.PROTOCOL}) ''' return Response({ 'token': token.key, 'name': user.name }, status=status.HTTP_201_CREATED) else: return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def setUp(self): self.user = User( username='******', first_name='John', last_name='Doe' ) self.user.save() self.profile = Profile() self.profile.user = self.user self.profile.nickname = 'doer' self.profile.save()
def post(self, request): serializer = self.serializer_class(data=request.data) if serializer.is_valid(): try: un_id = self.model.objects.get(un_id=serializer.data['un_id']) if un_id.owner.is_active: token = self.token_model.objects.get_or_create( user=un_id.owner)[0].key un_id.owner.last_login = timezone.now() un_id.owner.save(update_fields=['last_login']) return Response( { 'token': token, 'name': un_id.owner.name, 'email': un_id.owner.email, }, status=status.HTTP_200_OK) else: return Response({'error': ['This account is disabled.']}, status=status.HTTP_401_UNAUTHORIZED) except self.model.DoesNotExist: user, created = self.user_model.objects.get_or_create( email=serializer.data['email']) if created: user.name = serializer.data['name'] user.is_active = True user.save() Profile(owner=user).save() ProfileImage(owner=user).save() try: obj, creat = self.model.objects.get_or_create( un_id=serializer.data['un_id'], owner=user) if not creat: return Response({'error':'This token or email ID is already associated with other email ID or token resp.'},\ status=status.HTTP_400_BAD_REQUEST) except: return Response({'error':'This token or email ID is already associated with other email ID or token resp.'},\ status=status.HTTP_400_BAD_REQUEST) token, created = Token.objects.get_or_create(user=user) return Response( { 'token': token.key, 'name': user.name, 'email': user.email }, status=status.HTTP_201_CREATED) else: return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)