create user post

This commit is contained in:
Orabis 2024-10-16 14:12:43 +02:00
parent bc7ce8106e
commit 477d680530
3 changed files with 39 additions and 2 deletions

View File

@ -1,6 +1,19 @@
from rest_framework import serializers
from .models import *
from django.contrib.auth.models import User
class UserSerializer(serializers.ModelSerializer):
password = serializers.CharField(write_only=True)
class Meta:
model = User
fields = ["id", "username", "password", "email"]
def validate_email(self, value):
if User.objects.filter(email=value).exists():
raise serializers.ValidationError("Cette adresse e-mail est déjà utilisée.")
return value
class ProductSerializer(serializers.ModelSerializer):

View File

@ -1,12 +1,13 @@
from django.contrib import admin
from django.urls import include, path
from rest_framework import routers
from .views import *
from . import views
router = routers.DefaultRouter()
router.register(r'product', views.ProductViewSet)
urlpatterns = [
path('', include(router.urls)),
path('admin/', admin.site.urls),
path("create/", UserCreate.as_view(), name="user-create")
]

View File

@ -1,8 +1,31 @@
from rest_framework import viewsets
from .models import *
from .serializers import *
from rest_framework.throttling import UserRateThrottle
from rest_framework.response import Response
from rest_framework import generics, status
class UserCreate(generics.CreateAPIView):
throttle_classes = [UserRateThrottle]
serializer_class = UserSerializer
queryset = User.objects.all()
def create(self, request):
serializers = self.get_serializer(data=request.data)
serializers.is_valid(raise_exception=True)
user = serializers.save()
return Response(serializers.data, status=status.HTTP_201_CREATED)
class ProductViewSet(viewsets.ModelViewSet):
queryset = Product.objects.all()
serializer_class = ProductSerializer
class CreateProject(viewsets.ModelViewSet):
queryset = Product.objects.all()
serializer_class = ProductSerializer
def get_queryset(self):
return Product.objects.filter(user=self.request.user)