У меня есть проект Django, и я использую Django Rest Frameowkr. Я настраиваю модель, сериализатор, представление и URL для пользовательской модели. У меня есть файл URL. Я хочу передать что-то вроде имени пользователя, когда вызывается URL API. В настоящее время у меня настроен первичный ключ, поэтому при вводе первичного ключа он работает. Я хочу переключить его на имя пользователя. Я также хочу, чтобы запрос сериализатора возвращал объект пользователя с именем пользователя, которое я передал.
Я использую стандартный Djangos User
объект из django.contrib.auth.models
Вот код, который у меня есть
Urls.py
from django.urls import path
from django.contrib.auth.models import User
from .views import UserListView, UserDetailsView
from .views import ProfileListView, ProfileDetailsView
from .views import RoleListView, RoleDetailsView
urlpatterns = [
path('user/', UserListView.as_view()),
path('user/<pk>', UserDetailsView.as_view()),
]
файл serializer.py
from rest_framework import serializers
from django.contrib.auth.models import User
from users.models import Profile, Role
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('username', 'first_name', 'last_name', 'email', 'is_staff', 'last_login')
Views.py file
from rest_framework.generics import ListAPIView, RetrieveAPIView
from django.contrib.auth.models import User
from users.models import Profile, Role
from .serializers import UserSerializer, ProfileSerializer, RoleSerializer
class UserListView(ListAPIView):
queryset = User.objects.all()
serializer_class = UserSerializer
class UserDetailsView(RetrieveAPIView):
queryset = User.objects.all()
serializer_class = UserSerializer