schon/geo/serializers.py

70 lines
1.8 KiB
Python

from rest_framework import serializers
from geo.models import Address, City, Country, PostalCode, Region
class AddressCountrySerializer(serializers.ModelSerializer):
class Meta:
model = Country
fields = ("name",)
class AddressRegionSerializer(serializers.ModelSerializer):
class Meta:
model = Region
fields = ("name",)
class AddressCitySerializer(serializers.ModelSerializer):
class Meta:
model = City
fields = ("name",)
class AddressPostalCodeSerializer(serializers.ModelSerializer):
class Meta:
model = PostalCode
fields = ("code",)
class AddressSerializer(serializers.ModelSerializer):
country = AddressCountrySerializer()
city = AddressCitySerializer()
region = AddressRegionSerializer()
postal_code = AddressPostalCodeSerializer()
class Meta:
model = Address
fields = ("uuid", "street", "city", "region", "postal_code", "country")
class CountrySerializer(serializers.ModelSerializer):
class Meta:
model = Country
fields = "__all__"
class RegionSerializer(serializers.ModelSerializer):
class Meta:
model = Region
fields = "__all__"
class CitySerializer(serializers.ModelSerializer):
class Meta:
model = City
exclude = ("location",)
class PostalCodeSerializer(serializers.ModelSerializer):
class Meta:
model = PostalCode
exclude = ("location",)
class UnregisteredCustomerAddressSerializer(serializers.Serializer):
billing_customer_city = serializers.CharField(required=True)
billing_customer_region = serializers.CharField(required=True)
billing_customer_country = serializers.CharField(required=True)
billing_customer_postal_code = serializers.CharField(required=True)
billing_customer_address_line = serializers.CharField(required=True)