address coordinates in get api queries

This commit is contained in:
Kuroshini 2019-09-26 16:39:30 +03:00
parent f1eec96ce8
commit f21b4005aa
3 changed files with 15 additions and 11 deletions

View File

@ -104,6 +104,10 @@ class Address(models.Model):
def longitude(self): def longitude(self):
return self.coordinates.x return self.coordinates.x
@property
def location(self):
return self.location_field_indexing
@property @property
def location_field_indexing(self): def location_field_indexing(self):
return {'lat': self.latitude, return {'lat': self.latitude,

View File

@ -90,8 +90,9 @@ class AddressSerializer(serializers.ModelSerializer):
source='city', source='city',
queryset=models.City.objects.all()) queryset=models.City.objects.all())
city = CitySerializer(read_only=True) city = CitySerializer(read_only=True)
geo_lon = serializers.FloatField(allow_null=True) geo_lon = serializers.FloatField(allow_null=True, write_only=True)
geo_lat = serializers.FloatField(allow_null=True) geo_lat = serializers.FloatField(allow_null=True, write_only=True)
location = serializers.ReadOnlyField()
class Meta: class Meta:
model = models.Address model = models.Address
@ -104,7 +105,8 @@ class AddressSerializer(serializers.ModelSerializer):
'number', 'number',
'postal_code', 'postal_code',
'geo_lon', 'geo_lon',
'geo_lat' 'geo_lat',
'location',
] ]
def validate(self, attrs): def validate(self, attrs):
@ -119,12 +121,10 @@ class AddressSerializer(serializers.ModelSerializer):
def to_representation(self, instance): def to_representation(self, instance):
"""Override to_representation method""" """Override to_representation method"""
if instance.coordinates and isinstance(instance.coordinates, Point): if not instance.coordinates or not isinstance(instance.coordinates, Point):
# Point(longitude, latitude) setattr(instance, 'location', {
setattr(instance, 'geo_lat', instance.coordinates.x) 'lat': float(0),
setattr(instance, 'geo_lon', instance.coordinates.y) 'lon': float(0),
else: })
setattr(instance, 'geo_lat', float(0))
setattr(instance, 'geo_lon', float(0))
return super().to_representation(instance) return super().to_representation(instance)

View File

@ -53,7 +53,7 @@ class EstablishmentDocumentSerializer(DocumentSerializer):
fields = ( fields = (
'id', 'id',
'name', 'name',
'description', # 'description',
'public_mark', 'public_mark',
'toque_number', 'toque_number',
'price_level', 'price_level',