gault-millau/apps/location/serializers.py
2019-08-13 15:23:00 +03:00

72 lines
1.8 KiB
Python

from rest_framework import serializers
from location import models
class CountrySerializer(serializers.ModelSerializer):
"""Country serializer."""
class Meta:
model = models.Country
fields = [
'id',
'name'
]
class RegionSerializer(serializers.ModelSerializer):
"""Region serializer"""
country = CountrySerializer()
class Meta:
model = models.Region
fields = [
'id',
'name',
'code',
'parent_region',
'country'
]
class CitySerializer(serializers.ModelSerializer):
"""City serializer."""
country = CountrySerializer()
region = RegionSerializer()
class Meta:
model = models.City
fields = [
'id',
'name',
'code',
'region',
'country',
'postal_code',
'is_island',
]
class AddressSerializer(serializers.ModelSerializer):
"""Address serializer."""
city = CitySerializer()
longitude = serializers.DecimalField(max_digits=10, decimal_places=6)
latitude = serializers.DecimalField(max_digits=10, decimal_places=6)
class Meta:
model = models.Address
fields = [
'city',
'street_name_1',
'street_name_2',
'number',
'postal_code',
'longitude',
'latitude'
]
# def validate(self, attrs):
# geo_lat = attrs.pop('geo_lat') if 'geo_lat' in attrs else None
# geo_lon = attrs.pop('geo_lon') if 'geo_lon' in attrs else None
# if geo_lat and geo_lon:
# # Point(longitude, latitude)
# attrs['coordinates'] = Point(geo_lon, geo_lat)
# return attrs