Fixes: 1) Address redundant migration logic by dropping stale migrations; 2) Cleanup swapper-based dependencies in Geo models; Extra: Streamlined database initialization by resetting all previous migrations.
65 lines
1.6 KiB
Python
65 lines
1.6 KiB
Python
from rest_framework import serializers
|
|
|
|
from geo.models import Address
|
|
|
|
|
|
class AddressAutocompleteInputSerializer(serializers.Serializer):
|
|
q = serializers.CharField(
|
|
required=True
|
|
)
|
|
limit = serializers.IntegerField(
|
|
required=False,
|
|
min_value=1,
|
|
max_value=10,
|
|
default=5
|
|
)
|
|
|
|
|
|
class AddressSuggestionSerializer(serializers.Serializer):
|
|
display_name = serializers.CharField()
|
|
lat = serializers.FloatField()
|
|
lon = serializers.FloatField()
|
|
address = serializers.DictField(child=serializers.CharField())
|
|
|
|
|
|
class AddressSerializer(serializers.ModelSerializer):
|
|
latitude = serializers.FloatField(source="location.y", read_only=True)
|
|
longitude = serializers.FloatField(source="location.x", read_only=True)
|
|
|
|
class Meta:
|
|
model = Address
|
|
fields = [
|
|
"uuid",
|
|
"street",
|
|
"district",
|
|
"city",
|
|
"region",
|
|
"postal_code",
|
|
"country",
|
|
"latitude",
|
|
"longitude",
|
|
"raw_data",
|
|
"api_response",
|
|
"user",
|
|
]
|
|
read_only_fields = [
|
|
"latitude",
|
|
"longitude",
|
|
"raw_data",
|
|
"api_response",
|
|
]
|
|
|
|
|
|
class AddressCreateSerializer(serializers.ModelSerializer):
|
|
raw_data = serializers.CharField(
|
|
write_only=True,
|
|
max_length=512,
|
|
)
|
|
|
|
class Meta:
|
|
model = Address
|
|
fields = ["raw_data", "user"]
|
|
|
|
def create(self, validated_data):
|
|
raw = validated_data.pop("raw_data")
|
|
return Address.objects.create(raw_data=raw, **validated_data)
|