From 477d6805307aa11e99de9990244143adcad4ba6e Mon Sep 17 00:00:00 2001 From: Orabis Date: Wed, 16 Oct 2024 14:12:43 +0200 Subject: [PATCH] create user post --- StockSeeker/serializers.py | 15 ++++++++++++++- StockSeeker/urls.py | 3 ++- StockSeeker/views.py | 23 +++++++++++++++++++++++ 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/StockSeeker/serializers.py b/StockSeeker/serializers.py index 7fe1599..a97f96d 100644 --- a/StockSeeker/serializers.py +++ b/StockSeeker/serializers.py @@ -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): diff --git a/StockSeeker/urls.py b/StockSeeker/urls.py index bc08494..e440b5e 100644 --- a/StockSeeker/urls.py +++ b/StockSeeker/urls.py @@ -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") ] diff --git a/StockSeeker/views.py b/StockSeeker/views.py index 55704b2..4fab407 100644 --- a/StockSeeker/views.py +++ b/StockSeeker/views.py @@ -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)