You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.0 KiB
73 lines
2.0 KiB
from controle.models import Cidade, Email, Endereco, Estado, Notas, Pessoa, Telefone
|
|
from rest_framework import serializers
|
|
|
|
# Serializers define the API representation.
|
|
|
|
|
|
class EstadoSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Estado
|
|
fields = '__all__'
|
|
|
|
|
|
class CidadeSerializer(serializers.HyperlinkedModelSerializer):
|
|
id = serializers.IntegerField()
|
|
url = serializers.HyperlinkedIdentityField(
|
|
view_name="controle:cidade-detail")
|
|
estado = serializers.HyperlinkedRelatedField(
|
|
read_only=True,
|
|
view_name="controle:estado-detail")
|
|
label = serializers.ReadOnlyField()
|
|
|
|
class Meta:
|
|
model = Cidade
|
|
fields = '__all__'
|
|
|
|
|
|
class NestedEnderecosSerializer(serializers.ModelSerializer):
|
|
id = serializers.IntegerField(required=False)
|
|
|
|
class Meta:
|
|
model = Endereco
|
|
fields = '__all__'
|
|
read_only_fields = ['pessoa']
|
|
|
|
|
|
class NestedTelefonesSerializer(serializers.ModelSerializer):
|
|
id = serializers.IntegerField(required=False)
|
|
|
|
class Meta:
|
|
model = Telefone
|
|
fields = '__all__'
|
|
read_only_fields = ['pessoa']
|
|
|
|
|
|
class NestedEmailsSerializer(serializers.ModelSerializer):
|
|
id = serializers.IntegerField(required=False)
|
|
|
|
class Meta:
|
|
model = Email
|
|
fields = '__all__'
|
|
read_only_fields = ['pessoa']
|
|
|
|
|
|
class NestedNotasSerializer(serializers.ModelSerializer):
|
|
id = serializers.IntegerField(required=False)
|
|
|
|
class Meta:
|
|
model = Notas
|
|
fields = '__all__'
|
|
read_only_fields = ['pessoa']
|
|
|
|
|
|
class PessoaSerializer(serializers.ModelSerializer):
|
|
enderecos = NestedEnderecosSerializer(many=True, required=False)
|
|
telefones = NestedTelefonesSerializer(many=True, required=False)
|
|
emails = NestedEmailsSerializer(many=True, required=False)
|
|
notas = NestedNotasSerializer(many=True, required=False)
|
|
|
|
label = serializers.ReadOnlyField()
|
|
|
|
class Meta:
|
|
model = Pessoa
|
|
fields = '__all__'
|