I have a django project and I am using Django Rest Frameowkr. I setup up a model, serializer, view, and url for a users model. I have the urls file. I want to passing in something like a username when the api url is called. I currently have it setup to have a primary key so when I enter a primary key it works. I want to switch it to username. I also want the serializer query to return the user object iwth the usename I pass in.
I am using Djangos standard User object from django.contrib.auth.models
Here is the code I have
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 file
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