added user api-view

This commit is contained in:
Chneemann 2024-08-04 10:02:07 +02:00
parent f8af9ee5df
commit 94b096e6c0
3 changed files with 52 additions and 1 deletions

View file

@ -0,0 +1,7 @@
from rest_framework import serializers
from .models import CustomUser
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = CustomUser
fields = ["id", "username", "first_name", "last_name", "email"]

View file

@ -1,3 +1,44 @@
from django.http import JsonResponse
from django.shortcuts import render from django.shortcuts import render
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework import status
from .serializer import UserSerializer
from .models import CustomUser
# Create your views here. @api_view(['GET', 'POST'])
def user_list(request):
if request.method == 'GET':
user = CustomUser.objects.all()
serializer = UserSerializer(user, many=True)
return Response(serializer.data)
elif request.method == 'POST':
serializer = UserSerializer(data= request.data)
if serializer.is_valid():
serializer.save
return Response(serializer.data, status=status.HTTP_201_CREATED)
@api_view(['GET', 'PUT', 'DELETE'])
def user_detail(request, id):
try:
user = CustomUser.objects.get(pk=id)
except CustomUser.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
if request.method == 'GET':
serializer = UserSerializer(user)
return Response(serializer.data)
elif request.method == 'PUT':
serializer = UserSerializer(user, data=request.data)
if serializer.is_valid():
serializer().save()
return Response(serializer.data)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
elif request.method == 'DELETE':
user.delete()
return Response(status=status.HTTP_204_NO_CONTENT)

View file

@ -16,7 +16,10 @@ Including another URLconf
""" """
from django.contrib import admin from django.contrib import admin
from django.urls import path from django.urls import path
from users import views
urlpatterns = [ urlpatterns = [
path('admin/', admin.site.urls), path('admin/', admin.site.urls),
path('users/', views.user_list),
path('users/<int:id>/', views.user_detail),
] ]