26 lines
1005 B
Python
26 lines
1005 B
Python
from rest_framework import serializers
|
|
from django.contrib.gis.geos import Point
|
|
from .models import ObjektSigurnosti
|
|
|
|
class ObjektSigurnostiSerializer(serializers.ModelSerializer):
|
|
|
|
class Meta:
|
|
model = ObjektSigurnosti
|
|
fields = '__all__'
|
|
|
|
def create(self, validated_data):
|
|
lokacija_data = validated_data.pop('lokacija', None)
|
|
lokacija = Point(lokacija_data['lon'], lokacija_data['lat'], srid=3765)
|
|
objekt = ObjektSigurnosti.objects.create(lokacija=lokacija, **validated_data)
|
|
return objekt
|
|
|
|
def to_representation(self, instance):
|
|
return {'lon': instance.lokacija.x, 'lat': instance.lokacija.y}
|
|
|
|
def update(self, instance, validated_data):
|
|
lokacija_data = validated_data.pop('lokacija', None)
|
|
lokacija = Point(lokacija_data['lon'], lokacija_data['lat'], srid=3765) if lokacija_data else None
|
|
instance.lokacija = lokacija
|
|
instance.save()
|
|
return super().update(instance, validated_data)
|