customerwebsitebackend/api/serializers.py
2026-10-04 20:10:58 +05:30

29 lines
1.3 KiB
Python

from rest_framework import serializers
from django.contrib.auth.models import User
from orders.models import CustomerProfile
class UserRegisterSerializer(serializers.ModelSerializer):
phone = serializers.CharField(write_only=True, required=False, allow_blank=True)
address = serializers.CharField(write_only=True, required=False, allow_blank=True)
password = serializers.CharField(write_only=True)
first_name = serializers.CharField(required=False, allow_blank=True)
last_name = serializers.CharField(required=False, allow_blank=True)
class Meta:
model = User
fields = ['username', 'email', 'password', 'first_name', 'last_name', 'phone', 'address']
def create(self, validated_data):
phone = validated_data.pop('phone', '')
address = validated_data.pop('address', '')
password = validated_data.pop('password')
user = User.objects.create_user(
username=validated_data['username'],
email=validated_data.get('email', ''),
first_name=validated_data.get('first_name', ''),
last_name=validated_data.get('last_name', ''),
password=password
)
CustomerProfile.objects.create(user=user, phone=phone, default_address=address)
return user