class PontoTuristicoSerializer (ModelSerializer):
    atracoes = AtracaoSerializer(many=True)
    endereco = EnderecoSerializer()

    class Meta:
        model = PontoTuristico
        fields = ('id', 'nome', 'descricao', 'aprovado', 'atracoes', 'comentarios', 'avaliacoes', 'endereco', 'descricao_completa')
Example #2
0
class pontoTuristicoSerializer(ModelSerializer):
    atracoes = AtracaoSerializer(many=True)  #relaçao muitos pra muitos
    endereco = EnderecoSerializer()

    class Meta:
        model = pontoTuristico
        fields = ('id', 'nome', 'descricao', 'status', 'endereco', 'foto',
                  'atracoes', 'comentarios')
        read_only_fields = ['comentarios']

    def cria_atracoes(self, atracoes, ponto):
        for atracao in atracoes:
            at = Atracao.objects.create(**atracao)
            ponto.atracoes.add(at)

    def create(self, validated_data):
        atracoes = validated_data['atracoes']
        del validated_data['atracoes']  #manytomany relacionamentos

        #relacionamento com chave estrangeira FK
        endereco = validated_data['endereco']
        del validated_data['endereco']

        ponto = pontoTuristico.objects.create(**validated_data)
        self.cria_atracoes(atracoes, ponto)

        end = Endereco.objects.create(**endereco)
        ponto.endereco = end
        ponto.save()

        #relacionamento de 1-1

        return ponto
Example #3
0
class PontoTuristicoSerializer(ModelSerializer):
    Avaliacoes = AvaliacaoSerializer(many=True)
    Comentarios = ComentarioSerializer(many=True)
    atracoes = AtracaoSerializer(many=True)
    Endereco = EnderecoSerializer()
    descricao_completa = SerializerMethodField()

    class Meta:
        model = PontoTuristico
        fields = [
            'id',
            'nome',
            'descricao',
            'aprovado',
            'foto',
            # Foreign Keys/ManyToMany
            'atracoes',
            'Comentarios',
            'Avaliacoes',
            'Endereco',
            # Incluido do SerializerMethodField
            'descricao_completa',
        ]

    def get_descricao_completa(self, obj):
        return '%s - %s' % (obj.nome, obj.descricao)
class PontoTuristicoSerializer(ModelSerializer):
    atracoes = AtracaoSerializer(many=True)
    comentarios = ComentarioSerializer(many=True)
    avaliacoes = AvaliacaoSerializer(many=True)
    enderecos = EnderecoSerializer()
    doc_identificacao = DocIdentificacaoSerializer()
    descricao_completa = SerializerMethodField(read_only=True)
    criado_em = DateTimeField(read_only=True, format="%d/%m/%Y %H:%M:%S")

    class Meta:
        model = PontoTuristico
        fields = ('id', 'nome', 'descricao', 'aprovado', 'foto', 'atracoes',
                  'comentarios', 'avaliacoes', 'enderecos',
                  'doc_identificacao', 'descricao_completa', 'criado_em')

    def cria_atracoes(self, atracoes, ponto):
        for atracao in atracoes:
            at = Atracao.objects.create(**atracao)
            ponto.atracoes.add(at)

    def cria_comentarios(self, comentarios, ponto):
        for comentario in comentarios:
            co = Comentario.objects.create(**comentario)
            ponto.comentarios.add(co)

    def cria_avaliacoes(self, avaliacoes, ponto):
        for avaliacao in avaliacoes:
            av = Avaliacao.objects.create(**avaliacao)
            ponto.avaliacoes.add(av)

    def create(self, validated_data):
        atracoes = validated_data['atracoes']
        enderecos = validated_data['enderecos']
        comentarios = validated_data['comentarios']
        avaliacoes = validated_data['avaliacoes']
        doc = validated_data['doc_identificacao']
        del validated_data['atracoes']
        del validated_data['enderecos']
        del validated_data['comentarios']
        del validated_data['avaliacoes']
        del validated_data['doc_identificacao']

        ponto = PontoTuristico.objects.create(**validated_data)

        self.cria_atracoes(atracoes, ponto)
        self.cria_comentarios(comentarios, ponto)
        self.cria_avaliacoes(avaliacoes, ponto)

        end = Endereco.objects.create(**enderecos)
        ponto.enderecos = end

        doci = DocIdentificacao.objects.create(**doc)
        ponto.doc_identificacao = doci

        ponto.save()
        return ponto

    def get_descricao_completa(self, obj):
        return '%s - %s' % (obj.nome, obj.descricao)
class PontoTuristicoSerializer(ModelSerializer):
    logradouro = LogradouroSerializer()
    atracao = AtracaoSerializer(many=True)

    class Meta:
        model = PontoTuristico
        fields = ('id', 'nome', 'descricao', 'aprovado', 'foto', 'logradouro',
                  'atracao')
Example #6
0
class PontoTuristicoSerializer(ModelSerializer):
    atracoes = AtracaoSerializer(
        many=True)  # Usamos many quando temos relação de 1 para muitos
    enderecos = EnderecoSerializer()

    class Meta:
        model = PontoTuristico
        fields = ('id', 'nome', 'descricao', 'aprovado', 'foto', 'atracoes',
                  'comentarios', 'avaliacoes', 'endereco')
class PontoTuristicoSerializer(ModelSerializer):
    atracoes = AtracaoSerializer(many=True)

    class Meta:
        model = PontoTuristico
        fields = [
            'id', 'nome', 'descricao', 'aprovado', 'atracoes', 'comments',
            'avaliacoes', 'localizacao', 'foto', 'atracoes'
        ]
Example #8
0
class PontoTuristicoSerializer(ModelSerializer):
    atracao = AtracaoSerializer(many=True)
    comentarios = ComentariosSerializer(many=True)
    avaliacoes = AvaliacoesSerializer(many=True)
    localizacao = EnderecosSerializer()

    class Meta:
        model = PontoTuristico
        fields = ('id', 'nome', 'descricao', 'foto', 'aprovado', 'atracao',
                  'comentarios', 'avaliacoes', 'localizacao')
class PontoTuristicoSerializer(ModelSerializer):
    # NestedRelationShip Carrega os objetos internos
    atracoes = AtracaoSerializer(many=True)
    endereco = EnderecoSerializer()
    descricao_completa = SerializerMethodField()

    #doc_identificacao

    class Meta:
        model = PontoTuristico
        fields = [
            'id', 'nome', 'descricao', 'aprovado', 'foto', 'atracoes',
            'comentarios', 'avaliacoes', 'endereco', 'descricao_completa',
            'descricao_completa2'
        ]
        read_only_fields = ('comentarios', 'avaliacoes')

    # Salvando requests com objetos relacionados
    # Modelo ManyToMany
    # Objetos secundarios
    def cria_atracoes(self, atracoes, ponto):
        for atracao in atracoes:
            at = Atracao.objects.create(**atracao)
            ponto.atracoes.add(at)

# Cria o registro principal e faz a chamada para inserir os objs secundarios

    def create(self, validated_data):
        atracoes = validated_data['atracoes']
        del validated_data['atracoes']

        print(validated_data)

        endereco = validated_data['endereco']
        del validated_data['endereco']

        #doc = validated_data['doc_identificacao']
        #del validated_data['doc_identificacao']
        #doci = DocIdentificacao.objects.create(**doc)

        ponto = PontoTuristico.objects.create(**validated_data)
        self.cria_atracoes(atracoes, ponto)

        end = Endereco.objects.create(**endereco)
        ponto.endereco = end
        #ponto.doc_identificacao = doci

        ponto.save()

        return ponto

    # Funciona como um 'transient' (para nao precisar gravar isso no banco)
    def get_descricao_completa(self, obj):
        return '%s - %s' % (obj.nome, obj.descricao)
Example #10
0
class PontoTuristicuSerializer(ModelSerializer):
    endereco = EnderecoSerializer()
    atracoes = AtracaoSerializer()
    comentarios = ComentarioSerializer()
    avaliacao = AvaliacaoSerializer(many=True)

    class Meta:
        model = PontosTuristicus
        fields = [
            'id', 'nome', 'descricao', 'avaliacao', 'atracoes', 'comentarios',
            'avaliacao', 'endereco', 'foto'
        ]
Example #11
0
class PontoTuristicoSerializer(ModelSerializer):
    atracoes = AtracaoSerializer(many=True)
    endereco = EnderecoSerializer(many=False)
    descricao_completa = SerializerMethodField()
    doc_identificacao = DocIdentificacaoSerializer()

    class Meta:
        model = PontoTuristico
        fields = ('id', 'nome', 'descricao', 'aprovado', 'foto', 'atracoes',
                  'comentarios', 'avaliacoes', 'endereco',
                  'descricao_completa', 'descricao_completa2',
                  'doc_identificacao')
        read_only_fields = ('comentarios', 'avaliacoes')

    def cria_atracoes(self, atracoes, ponto):
        for atracao in atracoes:
            at = Atracao.objects.create(**atracao)
            ponto.atracoes.add(at)

    def create(self, validated_data):
        ##carregando atracoes
        atracoes = validated_data['atracoes']
        del validated_data['atracoes']

        ##carregando endereco
        endereco = validated_data['endereco']
        del validated_data['endereco']

        ##carregando doc identificacao
        doc = validated_data['doc_identificacao']
        del validated_data['doc_identificacao']

        ##criando objeto ponto turistico
        ponto = PontoTuristico.objects.create(**validated_data)

        ##preenchendo atracoes ao objeto ponto turistico
        self.cria_atracoes(atracoes, ponto)

        ##preenchendo endereco ao objeto ponto turistico
        end = Endereco.objects.create(**endereco)
        ponto.endereco = end

        ##preenchendo doc_identificacao
        doc1 = DocIdentificacao.objects.create(**doc)
        ponto.doc_identificacao = doc1

        ponto.save()
        ##retornando objeto para gravação
        return ponto

    def get_descricao_completa(self, obj):
        return '%s - %s' % (obj.nome, obj.descricao)
class PontoTuristicoSerializer(ModelSerializer):
    atracoes = AtracaoSerializer(many=True)
    endereco = EnderecoSerializer()
    descricao_completa = SerializerMethodField()

    class Meta:
        model = PontoTuristico
        fields = ('id', 'nome', 'descricao', 'aprovado', 'foto', 'atracoes',
                  'comentarios', 'avaliacoes', 'endereco',
                  'descricao_completa', 'descricao_completa2')

    def get_descricao_completa(self, obj):
        return f'{obj.nome} - {obj.descricao}'
Example #13
0
class PontoTuristicoSerializer(ModelSerializer):

    atracoes = AtracaoSerializer(many=True)
    enderecos = EnderecoSerializer()
    descricao_completa = SerializerMethodField()

    class Meta:
        model = PontoTuristico
        fields = ('id', 'nome', 'descricao', 'aprovado', 'image', 'atracoes',
                  'enderecos', 'descricao_completa', 'descricao_completa2')

    def get_descricao_completa(self, obj):
        return '%s - %s' % (obj.nome, obj.descricao)
class PontoTuristicoSerializer(ModelSerializer):
    atracoes = AtracaoSerializer(many=True)
    endereco = EnderecoSerializer()
    descricao_completa = SerializerMethodField()
    doc_identificacao = DocIdentificacaoSerializer()

    class Meta:
        model = PontoTuristico
        fields = (
            'id', 'nome', 'descricao', 'aprovado',
            'atracoes', 'comentarios', 'avaliacoes', 'endereco',
            'descricao_completa', 'descricao_completa2', 'doc_identificacao'
        )

        read_only_fields = ('comentarios',)

    def cria_atracoe(self, atracoes, ponto):
        for atracao in atracoes:
            at = Atracao.objects.create(**atracao)
            ponto.atracoes.add(at)

    def create(self, validated_data):
        atracoes = validated_data['atracoes']
        del validated_data['atracoes']

        endereco = validated_data['endereco']
        del validated_data['endereco']

        avaliacoes = validated_data['avaliacoes']
        del validated_data['avaliacoes']

        doc = validated_data['doc_identificacao']
        del validated_data['doc_identificacao']
        doci = DocIdentificacao.objects.create(**doc)

        ponto = PontoTuristico.objects.create(**validated_data)
        self.cria_atracoe(atracoes, ponto)

        ponto.avaliacoes.set(avaliacoes)

        end = Endereco.objects.create(**endereco)
        ponto.endereco = end
        ponto.doc_identificacao = doci

        ponto.save()

        return ponto


    def get_descricao_completa(self, obj):
        return '%s - %s' % (obj.nome, obj.descricao)
Example #15
0
class PontoTuristicoSerializer(ModelSerializer):
    atracoes = AtracaoSerializer(many=True, read_only=True)
    comentarios = ComentarioSerializer(many=True, read_only=True)

    class Meta:
        model = PontoTuristico
        fields = (
            "ponto_turistico_id",
            "nome",
            "descricao",
            "aprovado",
            "foto",
            "atracoes",
            "comentarios",
        )
Example #16
0
class PontoTuristicoSerializer(ModelSerializer):
    atracoes = AtracaoSerializer(many=True)
    endereco = EnderecoSerializer()
    descricao_completa = SerializerMethodField()
    doc_identificacao = DocIdentificacaoSerializer()

    class Meta:
        model = PontoTuristico
        fields = [
            'id', 'nome', 'descricao', 'doc_identificacao', 'aprovado', 'foto',
            'atracoes', 'endereco', 'comentarios', 'avaliacoes',
            'descricao_completa', 'descricao_completa2'
        ]
        read_only_fields = ('comentarios', 'avaliacoes')
        depth = 1

    def cria_atracoes(self, atracoes, ponto):
        for atracao in atracoes:
            at = Atracao.objects.create(**atracao)
            ponto.atracoes.add(at)

    def create(self, validated_data):
        atracoes = validated_data['atracoes']
        del validated_data['atracoes']

        endereco = validated_data['endereco']
        del validated_data['endereco']

        docdata = validated_data['doc_identificacao']
        del validated_data['doc_identificacao']

        #** diz que o django vai interar nessa variavel diccionario para criar o ponto turistico no banco de dados
        ponto = PontoTuristico.objects.create(**validated_data)

        self.cria_atracoes(atracoes, ponto)

        end = Endereco.objects.create(**endereco)
        ponto.endereco = end
        doc = DocIdentificacao.objects.create(**docdata)
        ponto.doc_identificacao = doc

        ponto.save()

        return ponto

    def get_descricao_completa(self, obj):
        return "%s - %s" % (obj.nome, obj.descricao)
Example #17
0
class PontoTuristicoSerializer(serializers.ModelSerializer):
    '''
    many=True - apenas para relacionamentos muitos para muitos
    read_only=True - no momento da criação do objeto não será necessário enviar o JSON da propriedade atracoes
    '''
    atracoes = AtracaoSerializer(many=True) 
    endereco = EnderecoSerializer()
    descricao_completa = SerializerMethodField()

    class Meta:
        model = PontoTuristico
        fields = ('id', 'nome', 'descricao', 'aprovado', 'foto', 
            'atracoes', 'comentarios', 'avaliacoes', 'endereco', 
            'descricao_completa')
        
        read_only_fields = ('comentarios', 'avaliacoes')
    
    def cria_atracoes(self, atracoes, ponto):
        for atracao in atracoes:
            at = Atracao.objects.create(**atracao)
            ponto.atracoes.add(at)

    def create(self, validated_data):
        atracoes = validated_data['atracoes']
        del(validated_data['atracoes'])

        ponto = PontoTuristico.objects.create(**validated_data)
        self.cria_atracoes(atracoes, ponto)

        endereco = validated_data['endereco']
        del(validated_data['endedreo'])

        end = Endereco.objets.create(**endereco)
        ponto.endereco = end

        ponto.save()

        return ponto


    def get_descricao_completa(self, obj):
        return '%s - %s'  %(obj.nome, obj.descricao)
class PontoTuristicoSerializer(ModelSerializer):

    atracoes = AtracaoSerializer(many=True)
    endereco = EnderecoSerializer()
    """
        Criando mais um campo para mostrar no serializer 
    """
    descricao_completa = SerializerMethodField()

    class Meta:
        model = PontoTuristico
        fields = ('id', 'nome', 'descricao', 'foto', 'aprovado', 'atracoes',
                  'comentarios', 'avaliacoes', 'endereco',
                  'descricao_completa', 'descricao_completa2')

    """
        Criando mais um campo para mostrar no serializer 
    """

    def get_descricao_completa(self, obj):
        return '%s - %s' % (obj.nome, obj.descricao)