Newer
Older
# myapp/serializers.py
from rest_framework import serializers
from .models import Product, Profile, Category
from django.contrib.auth.models import User
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):
# password = serializers.CharField(write_only=True)
class Meta:
model = User
fields = "__all__"
# 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')
return user
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