serializers.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # coding=utf-8
  2. from django.conf import settings
  3. from rest_framework import serializers
  4. from .models import UsedVehicle, UsedVehicleImg
  5. class UsedVehicleSerializer(serializers.ModelSerializer):
  6. status_text = serializers.CharField(source='get_status_display', read_only=True)
  7. brand_name = serializers.CharField(source='brand.name', read_only=True)
  8. plate_date = serializers.DateField(format='%Y-%m-%d')
  9. factory_date = serializers.DateField(format='%Y-%m-%d')
  10. thumbnail_url = serializers.SerializerMethodField()
  11. def get_thumbnail_url(self, obj):
  12. if obj.thumbnail:
  13. return '%s%s' % (settings.MEDIA_URL, obj.thumbnail.picture)
  14. return ''
  15. class Meta:
  16. model = UsedVehicle
  17. fields = '__all__'
  18. def create(self, validated_data):
  19. instance = super(UsedVehicleSerializer, self).create(validated_data)
  20. return instance
  21. def update(self, instance, validated_data):
  22. instance = super(UsedVehicleSerializer, self).update(instance, validated_data)
  23. return instance
  24. class UsedVehicleImgSerializer(serializers.ModelSerializer):
  25. img_url = serializers.SerializerMethodField()
  26. def get_img_url(self, obj):
  27. if obj.img:
  28. return '%s%s' % (settings.MEDIA_URL, obj.img.picture)
  29. return ''
  30. class Meta:
  31. model = UsedVehicleImg
  32. fields = '__all__'