Получение связанного объекта через таблицу `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}'
