Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.contrib.auth import get_user_model
- from rest_framework import serializers
- from users.models import Company, Review, Album, Client
- from datetime import datetime
- User = get_user_model()
- class ClientsSerializer(serializers.ModelSerializer):
- class Meta:
- model = Client
- fields = [
- 'date_of_birthday',
- 'gender',
- 'user',
- ]
- extra_kwargs = {
- 'user': {'validators': []},
- }
- class UsersSerializer(serializers.ModelSerializer):
- password = serializers.CharField(write_only=True)
- client = ClientsSerializer(many=False, read_only=False)
- class Meta:
- model = User
- fields = ('id', 'phone', 'first_name', 'last_name', 'is_active',
- 'avatar', 'password', 'client', )
- write_only_fields = ('password', )
- read_only_fields = ('is_staff', 'is_active', 'date_joined', )
- def create(self, validated_data):
- user = super(UsersSerializer, self).create(validated_data)
- user.set_password(validated_data['password'])
- user.save()
- return user
- # class UsersSerializer(serializers.Serializer):
- # id = serializers.IntegerField()
- # phone = serializers.CharField()
- # first_name = serializers.CharField()
- # last_name = serializers.CharField()
- # avatar = serializers.FileField()
- class CompaniesSerializer(serializers.ModelSerializer):
- category = serializers.SerializerMethodField()
- description = serializers.SerializerMethodField()
- avatar = serializers.SerializerMethodField()
- class Meta:
- model = Company
- fields = '__all__'
- extra_fields = ['avatar',]
- def get_category(self, obj):
- return [{
- 'name': obj.category.name,
- 'id': obj.category.id
- }]
- def get_description(self, obj):
- return obj.description
- def get_avatar(self, obj):
- try:
- file = obj.user.avatar.url
- except ValueError:
- return None
- return file
- class ReviewSerializer(serializers.ModelSerializer):
- class Meta:
- model = Review
- fields = '__all__'
- class AlbumSerializer(serializers.ModelSerializer):
- class Meta:
- model = Album
- fields = '__all__'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement