Skip to content
Snippets Groups Projects
serializers.py 1.85 KiB
Newer Older
# myapp/serializers.py
from rest_framework import serializers
from .models import Product, Profile, Category
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):
	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