12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- # coding=utf-8
- from django.conf import settings
- from rest_framework import serializers
- from apps.usedvehicle.models import UsedVehicle, UsedVehicleImg
- from apps.foundation.models import Option
- class UsedVehicleSerializer(serializers.ModelSerializer):
- status_text = serializers.CharField(source='get_status_display', read_only=True)
- brand_name = serializers.CharField(source='brand.name', read_only=True)
- gearbox_name = serializers.CharField(source='gearbox.name', read_only=True)
- color_name = serializers.CharField(source='color.name', read_only=True)
- displacement_name = serializers.CharField(source='displacement.name', read_only=True)
- emission_name = serializers.CharField(source='emission.name', read_only=True)
- seat_count_name = serializers.CharField(source='seat_count.name', read_only=True)
- oil_type_name = serializers.CharField(source='emission.name', read_only=True)
- plate_date = serializers.DateField(format='%Y-%m-%d')
- factory_date = serializers.DateField(format='%Y-%m-%d')
- picture = serializers.SerializerMethodField()
- def get_picture(self, obj):
- if obj.thumbnail:
- return {'width': obj.thumbnail.width, 'height': obj.thumbnail.height, 'url': obj.thumbnail.get_path()}
- return ''
- class Meta:
- model = UsedVehicle
- fields = '__all__'
- class UsedVehicleDetailSerializer(serializers.ModelSerializer):
- status_text = serializers.CharField(source='get_status_display', read_only=True)
- brand_name = serializers.CharField(source='brand.name', read_only=True)
- gearbox_name = serializers.CharField(source='gearbox.name', read_only=True)
- color_name = serializers.CharField(source='color.name', read_only=True)
- displacement_name = serializers.CharField(source='displacement.name', read_only=True)
- emission_name = serializers.CharField(source='emission.name', read_only=True)
- seat_count_name = serializers.CharField(source='seat_count.name', read_only=True)
- oil_type_name = serializers.CharField(source='emission.name', read_only=True)
- plate_date = serializers.DateField(format='%Y-%m-%d')
- factory_date = serializers.DateField(format='%Y-%m-%d')
- images = serializers.SerializerMethodField()
- def get_images(self, obj):
- result = []
- rows = UsedVehicleImg.objects.filter(main=obj).values('img__picture', 'img__width', 'img__height')
- for row in rows:
- url = {'width': row['img__width'], 'height': row['img__height'],
- 'url': '%s%s%s' % (settings.SERVER_DOMAIN, settings.MEDIA_URL, row['img__picture'])}
- result.append(url)
- return result
- class Meta:
- model = UsedVehicle
- fields = '__all__'
|