diff --git a/api/requirements.txt b/api/requirements.txt --- a/api/requirements.txt +++ b/api/requirements.txt @@ -1,7 +1,6 @@ -django[argon2]==2.1.5 -django-cors-headers==2.4.0 -djangorestframework==3.9.0 -olefile==0.46 -pillow==5.4.0 -psycopg2-binary==2.7.6.1 +django[argon2]==2.2.0 +django-cors-headers==2.5.2 +djangorestframework==3.9.2 +pillow==6.0.0 +psycopg2-binary==2.7.7 requests==2.21.0 diff --git a/api/users/models.py b/api/users/models.py --- a/api/users/models.py +++ b/api/users/models.py @@ -1,8 +1,6 @@ import os from django.db import models -from django.core.exceptions import ObjectDoesNotExist - from django.conf import settings from django.contrib.auth import get_user_model @@ -12,33 +10,20 @@ """ Gets the profile. If it doesn't exist it is created """ - lookup, params = self._extract_model_params(None, **kwargs) try: - return super().get(**lookup) - except self.model.DoesNotExist: - user = lookup.get( - 'user', - lookup.get( - 'user__id', - lookup.get( - 'user__pk', - lookup.get( - 'user_id' - ) - ) - ) - ) - # If user is int convert it to User object - try: - int(user) - except TypeError: - pass + return super().get(*args, **kwargs) + except self.model.DoesNotExist as e: + user = kwargs.pop("user", kwargs.pop("user__id", None)) + if len(args) != 0 or user is None or len(kwargs) != 0: + raise e else: - try: - user = get_user_model().objects.get(pk=user) - except ObjectDoesNotExist: - raise self.model.DoesNotExist("User matching query does not exist.") - return self.create(user=user) + # If user is int convert it to User object + if isinstance(user, int): + try: + user = get_user_model().objects.get(pk=user) + except get_user_model().DoesNotExist: + raise e + return self.create(user=user) class Profile(models.Model):