Я пытаюсь получить только одно поле в результате get_object_or_404, но, похоже, оно не работает для меня.
Я использую модель User из приложения аутентификации по умолчанию django. Это мой сериализатор:
class UserSerializer(serializers.Serializer):
username = serializers.CharField(max_length=150)
email = serializers.EmailField(max_length=254)
first_name = serializers.CharField(max_length=30)
Это мой взгляд:
class UserView(APIView):
def get(self, request, id=None):
if id:
data =
get_object_or_404(User.objects.only('username'),
id=id)
serializer = UserSerializer(data, many=False)
return Response(serializer.data)
else:
data = get_list_or_404(User)
serializer = UserSerializer(data, many=True)
return Response(serializer.data)
Даже после использования этого get_object_or_404(User.objects.only('username'), id=id)
я все равно получаю все поля, указанные в сериализаторе, а не только username.
Это ответ, который я получаю, когда передаю идентификатор в API при вызове его от почтальона.
{
"username": "admin",
"email": "admin@email.com",
"first_name": ""
}
вместо этого:
{
"username": "admin",
}