Skip to content
Snippets Groups Projects
serializers.py 2.13 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 = '__all__'


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


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


class UserSerializer(serializers.ModelSerializer):
Marc Taylor's avatar
Marc Taylor committed
    # password = serializers.CharField(write_only=True)

    class Meta:
        model = User
        fields = "__all__"

Marc Taylor's avatar
Marc Taylor committed
    # def create(self, validated_data):
    #     """
    #         Function to create a User, send a JSON object containing 
    #         the attributes: username, email, first_name, last_name, password.
    #     """
    #     user = User.objects.create_user(
    #         username=validated_data['username'],
    #         email=validated_data['email'],
    #         first_name=validated_data['first_name'],
    #         last_name=validated_data['last_name'],
    #         password=validated_data['password']
    #     )
    #     return user
    #   {"email":"test@example.com",
#       "username":"tester",
#       "password":"testing123"
#       }
    
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