added user api-view
This commit is contained in:
parent
f8af9ee5df
commit
94b096e6c0
3 changed files with 52 additions and 1 deletions
7
backend/videoflix/users/serializer.py
Normal file
7
backend/videoflix/users/serializer.py
Normal 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"]
|
||||
|
|
@ -1,3 +1,44 @@
|
|||
from django.http import JsonResponse
|
||||
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)
|
||||
|
|
@ -16,7 +16,10 @@ Including another URLconf
|
|||
"""
|
||||
from django.contrib import admin
|
||||
from django.urls import path
|
||||
from users import views
|
||||
|
||||
urlpatterns = [
|
||||
path('admin/', admin.site.urls),
|
||||
path('users/', views.user_list),
|
||||
path('users/<int:id>/', views.user_detail),
|
||||
]
|
||||
|
|
|
|||
Loading…
Reference in a new issue