Получение связанного объекта через таблицу `token` из dj_rest_auth

Я использую DRF token authentication в качестве auth backend для моего приложения React. Теперь я настроил новую конечную точку для получения экземпляра пользователя из модели UserProfile, которая является отношением 1-1 к встроенной модели BaseUser. В конечную точку передается токен пользователя после входа в систему, и DRF хранит токен в таблице Token. Как я могу теперь использовать токен для запроса нужного экземпляра пользователя?

return UserProfile.objects.get(user__token=token) это возвращает

django.core.exceptions.FieldError: Related Field got invalid lookup: token

return UserProfile.objects.get(token__user=token) возвращается

django.core.exceptions.FieldError: Невозможно преобразовать ключевое слово 'token' в поле. Варианты: company, company_id, id, is_ta, user, user_id

.

Токен прекрасно доходит до представления, которое я проверил через print(token).

# views.py

class UserDetail(APIView):

    def get_object(self, token):
        try:
            return UserProfile.objects.get(user__token=token) # doesn't work
        except UserProfile.DoesNotExist:
            raise Http404

    def post(self, request):
        token = json.loads(request.body.decode('utf-8'))
        user = self.get_object(token)
        serializer = UserProfileSerializer(user)
        return Response(serializer.data)
# models.py

class UserProfile(models.Model):
    """
    Extends Base User via 1-1 for profile information
    """
    # Relations
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    company = models.ForeignKey(Company, on_delete=models.CASCADE, null=True)

    # Roles
    is_ta = models.BooleanField(default=False)  # indicates if user is part of TA department

    def __str__(self):
        return F'{self.user.first_name} {self.user.last_name}'

enter image description here

Вернуться на верх