2024-01-17 08:32:22 +01:00

28 lines
1002 B
Python

from rest_framework import serializers
from django.contrib.gis.geos import Point
from .models import ObjektSigurnosti
class PointSerializer(serializers.Serializer):
lat = serializers.FloatField()
lon = serializers.FloatField()
def to_representation(self, instance):
return {'lat': instance.y, 'lon': instance.x}
class ObjektSigurnostiSerializer(serializers.ModelSerializer):
lokacija = PointSerializer()
class Meta:
model = ObjektSigurnosti
fields = '__all__'
def to_representation(self, instance):
representation = super().to_representation(instance)
representation['lokacija'] = PointSerializer(instance.lokacija).data
return representation
def create(self, validated_data):
lokacija_data = validated_data.pop('lokacija')
lokacija = Point(lokacija_data['lon'], lokacija_data['lat'], srid=3765)
objekt = ObjektSigurnosti.objects.create(lokacija=lokacija, **validated_data)
return objekt