Я использую такие наборы:
class UserViewSet(viewsets.ModelViewSet):
"""Viewset for model User."""
queryset = User.objects.all()
serializer_class = UserSerializer
и мой сериализатор имеет следующие поля:
fields = ('id', 'url', 'username', 'first_name', 'middle_name', 'last_name', 'role',
'get_role_display', 'is_authenticated', 'is_staff', 'is_superuser', )
Когда я получаю доступ к API для просмотра списка всех пользователей с этим URL /api/user/
, он возвращает json_data:
[
{
"id": 1,
"url": "http://127.0.0.1:8000/api/user/1/",
"username": "admin",
"first_name": "",
"middle_name": null,
"last_name": "",
"role": "A",
"get_role_display": "Admin",
"is_authenticated": true,
"is_staff": true,
"is_superuser": true
},
{
"id": 2,
"url": "http://127.0.0.1:8000/api/user/2/",
"username": "7004104463",
"first_name": "Vaibhav",
"middle_name": "Bold",
"last_name": "Vishal",
"role": "S",
"get_role_display": "Student",
"is_authenticated": true,
"is_staff": false,
"is_superuser": false
}
]
Но я пытаюсь вернуть только несколько полей в списке, скажем, только 'id', 'username', 'url',
, но при запросах, когда один объект запрашивается, например, /api/user/1/
Я хочу вернуть все поля. Я хочу избежать использования двух разных представлений rest_framework. Я хочу, чтобы один набор и сериализатор для этого. Есть ли способ сделать это?
Я использую React во внешнем интерфейсе и хочу избежать извлечения ненужных данных.