Advertisement
Guest User

Untitled

a guest
Feb 21st, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.32 KB | None | 0 0
  1. from django.contrib.auth import get_user_model
  2.  
  3. from rest_framework import serializers
  4.  
  5. from users.models import Company, Review, Album, Client
  6.  
  7. from datetime import datetime
  8.  
  9. User = get_user_model()
  10.  
  11.  
  12. class ClientsSerializer(serializers.ModelSerializer):
  13.     class Meta:
  14.         model = Client
  15.         fields = [
  16.             'date_of_birthday',
  17.             'gender',
  18.             'user',
  19.         ]
  20.         extra_kwargs = {
  21.             'user': {'validators': []},
  22.         }
  23.  
  24.  
  25. class UsersSerializer(serializers.ModelSerializer):
  26.     password = serializers.CharField(write_only=True)
  27.     client = ClientsSerializer(many=False, read_only=False)
  28.  
  29.     class Meta:
  30.         model = User
  31.         fields = ('id',  'phone', 'first_name', 'last_name', 'is_active',
  32.                   'avatar', 'password', 'client', )
  33.         write_only_fields = ('password', )
  34.         read_only_fields = ('is_staff', 'is_active', 'date_joined', )
  35.  
  36.     def create(self, validated_data):
  37.         user = super(UsersSerializer, self).create(validated_data)
  38.         user.set_password(validated_data['password'])
  39.         user.save()
  40.  
  41.         return user
  42.  
  43.  
  44.  
  45. # class UsersSerializer(serializers.Serializer):
  46. #     id = serializers.IntegerField()
  47. #     phone = serializers.CharField()
  48. #     first_name = serializers.CharField()
  49. #     last_name = serializers.CharField()
  50. #     avatar = serializers.FileField()
  51.  
  52.  
  53.  
  54. class CompaniesSerializer(serializers.ModelSerializer):
  55.     category = serializers.SerializerMethodField()
  56.     description = serializers.SerializerMethodField()
  57.     avatar = serializers.SerializerMethodField()
  58.  
  59.     class Meta:
  60.         model = Company
  61.         fields = '__all__'
  62.         extra_fields = ['avatar',]
  63.  
  64.     def get_category(self, obj):
  65.         return [{
  66.             'name': obj.category.name,
  67.             'id': obj.category.id
  68.         }]
  69.  
  70.     def get_description(self, obj):
  71.         return obj.description
  72.  
  73.     def get_avatar(self, obj):
  74.         try:
  75.             file = obj.user.avatar.url
  76.         except ValueError:
  77.             return None
  78.         return file
  79.  
  80.  
  81. class ReviewSerializer(serializers.ModelSerializer):
  82.     class Meta:
  83.         model = Review
  84.         fields = '__all__'
  85.  
  86.  
  87. class AlbumSerializer(serializers.ModelSerializer):
  88.     class Meta:
  89.         model = Album
  90.         fields = '__all__'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement