Skip to content
Snippets Groups Projects
serializers.py 2.16 KiB
Newer Older
# myapp/serializers.py
from rest_framework import serializers
Marc Taylor's avatar
Marc Taylor committed
from .models import Product, Profile, Category, Order, OrderItem
from django.contrib.auth.models import User
Marc Taylor's avatar
Marc Taylor committed
from django.contrib.auth import authenticate, get_user_model
from django.core.exceptions import ValidationError

class ProductSerializer(serializers.ModelSerializer):
    class Meta:
        model = Product
        fields = ['id', 'name', 'image', 'price', 'rent_price', 'size', 'user_id']

    # def add_product(self, clean_data):
    #     product = Product(
    #         user_id=clean_data['user_id'], 
    #         image=clean_data['image'], 
    #         price=clean_data['price'],
    #         rent_price=clean_data['rent_price'],
    #         name=clean_data['name'],
    #         size=clean_data['size']
    #     )
    #     product.save()     


class CategorySerializer(serializers.ModelSerializer):
    class Meta:
        model = Category
        fields = '__all__'


class ProfileSerializer(serializers.ModelSerializer):
    class Meta:
        model = Profile
        fields = '__all__'


class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = "__all__"
Marc Taylor's avatar
Marc Taylor committed
    
class UserLoginSerializer(serializers.Serializer):
    username = serializers.CharField()
    password = serializers.CharField()

    def check_user(self, clean_data):
        user = authenticate(username=clean_data['username'], password=clean_data['password'])
        if not user:
            raise ValidationError('user not found')
Marc Taylor's avatar
Marc Taylor committed


class UserRegisterSerializer(serializers.ModelSerializer):
Marc Taylor's avatar
Marc Taylor committed
    class Meta:
        model = User
        fields = '__all__'
    def create(self, clean_data):
        user_obj = User.objects.create_user(username=clean_data['username'], email=clean_data['email'], password=clean_data['password'])
        user_obj.username = clean_data['username']
        user_obj.save()
        return user_obj
    

class OrderSerializer(serializers.ModelSerializer):
    class Meta:
        model = Order
        fields = '__all__'
        

class OrderItemSerializer(serializers.ModelSerializer):
    class Meta:
        model = OrderItem
        fields = '__all__'