Esempio n. 1
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
class PontosTuristicosSerializer(ModelSerializer):
    atracoes = AtracaoSerializer(many=True, read_only=True)
    endereco = EnderecoSerializer(read_only=True)
    descricao_completa = SerializerMethodField()

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

        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 = PontosTuristicos.objects.create(**validated_data)
        self.cria_atracoes(atracoes, ponto)
        return ponto

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

    class Meta:
        model = PontoTuristico
        fields = ('id', 'nome', 'descricao', 'aprovado', 'atracoes', 'comentarios', 'avaliacoes', 'endereco', 'descricao_completa')
Esempio n. 4
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')
Esempio n. 7
0
class PontoTuristicoSerializer(serializers.ModelSerializer):
    atracoes = AtracaoSerializer(many=True)
    endereco = EnderecoSerializer()

    class Meta:
        model = PontoTuristico
        fields = ('id', 'nome', 'descricao', 'endereco', 'aprovado', 'foto',
                  'atracoes')
Esempio n. 8
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'
        ]
Esempio n. 10
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)
Esempio n. 12
0
class PontoTuristicoSerializer(ModelSerializer):
    descricao_completa = SerializerMethodField()
    atracoes = AtracaoSerializer(many=True, read_only=True)
    endereco = EnderecoSerializer(many=False, read_only=True)

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

    def get_descricao_completa(self, obj):
        return '%s - %s' % ('Descricao', obj.descricao)
Esempio n. 13
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'
        ]
class PontoTuristicoSerializer(ModelSerializer):
    #é preciso botar read_only -> por conta não se obrigado quando for feito o post (assim vai ignorar esse campo memso se mandar
    # atracoes = AtracaoSerializer(many=True, read_only=True)
    #relacionamento manyToMany
    atracoes = AtracaoSerializer(many=True)
    endereco = EnderecoSerializer()
    descricao_completa = SerializerMethodField()
    doc_identificador = DocIdentificadorSerializer()

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

    def criar_doc_identificador(self, documento, ponto_turistico):
        doc = DocIdentificador.objects.create(**documento)
        ponto_turistico.doc_identificador = doc

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

    def criar_endereco(self, endereco, ponto_turistico):
        end = Endereco.objects.create(**endereco)
        ponto_turistico.endereco = end

    #para criar a variável que se relaciona
    def create(self, validated_data):
        atracoes = validated_data['atracoes']
        #deletando
        del validated_data['atracoes']
        endereco = validated_data['endereco']
        del validated_data['endereco']

        documento = validated_data['doc_identificador']
        del validated_data['doc_identificador']

        ponto_turistico = PontoTuristico.objects.create(**validated_data)
        self.criar_atracoes(atracoes, ponto_turistico)
        self.criar_endereco(endereco, ponto_turistico)
        self.criar_doc_identificador(documento, ponto_turistico)

        ponto_turistico.save()

        return ponto_turistico

    def get_descricao_completa(self, obj):
        #pode pegar atributos do objeto que nem estão sendo usado
        #nos fields
        return '%s - %s' % (obj.nome, obj.descricao)
class PontoTuristicoSerializer(ModelSerializer):
  atracoes = AtracaoSerializer(many=True,)
  descricao_completa = SerializerMethodField()
  
  class Meta:
    model = PontoTuristico
    fields = ('id', 'nome', 'descricao', 'aprovado', 'foto',
     'atracoes', 'descricao_completa', 'descricao_completa_complementar',)

  
  def get_descricao_completa(self, obj):
    return '%s - %s' % (obj.nome, obj.descricao)
Esempio n. 16
0
class PontoTuristicoSerializer(ModelSerializer):
    # *** Nested relationships - Traz todos os campos do models relacionados ***
    # *** O parâmetro read_only=True serve para incluirmos via post os campos que são obrigatórios no model ***
    atracoes = AtracaoSerializer(many=True)
    endereco = EnderecoSerializer()
    descricao_completa = SerializerMethodField()
    doc_identificacao = DocIdentificacaoSerializer()

    # comentarios = ComentarioSerializer(many=True, read_only=True)
    # avaliacoes = AvaliacaoSerializer(many=True, read_only=True)

    class Meta:
        model = PontoTuristico
        fields = ('id', 'nome', 'descricao', 'descricao_completa',
                  'descricao_completa2', 'aprovado', 'foto', 'atracoes',
                  'avaliacoes', 'comentarios', 'endereco', 'doc_identificacao')
        # *** Corresponde ao read_only=True, quando não são campos extras
        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']

        endereco = validated_data['endereco']
        del validated_data['endereco']
        end = Endereco.objects.create(**endereco)

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

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

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

        ponto.avaliacoes.set(avaliacoes)

        ponto.endereco = end
        ponto.doc_identificacao = doc1

        ponto.save()

        return ponto

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

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

    ## ManyToMany
    def cria_atracoes(self, atracoes, ponto):
        for atracao in atracoes:
            at = Atracao.objects.create(
                **atracao)  #criando atracoes no banco de dados
            ponto.atracoes.add(
                at)  ##relacionando atracoes com o ponto turistico

    def create(self, validated_data):

        atracoes = validated_data[
            'atracoes']  ##recebendo os dados e criando uma lista de atracoes
        del validated_data[
            'atracoes']  ## deletando a lista de atracoes da lista recebida.

        endereco = validated_data[
            'endereco']  # recebe os dados enviado e separa o endereco em uma variavel
        del validated_data['endereco']  # deleta variavel

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

        ponto = PontoTuristico.objects.create(
            **validated_data
        )  #adicionando ponto turistico, depois de excluir atracoes da lista de ados recebido.
        self.cria_atracoes(atracoes, ponto)

        ## Forekey
        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)
Esempio n. 18
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)
Esempio n. 19
0
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}'
Esempio n. 20
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)
Esempio n. 22
0
class PontoTuristicoSerializer(ModelSerializer):
    atracoes = AtracaoSerializer(many=True)
    endereco = EnderecosSerializer()
    descricao_completa = SerializerMethodField()

    class Meta:
        model = PontoTuristico
        #criando um serializer pequeno para otimizar a pesquisa
        fields = ('id', 'nome', 'descricao', 'aprovado', 'atracoes',
                  'avaliacoes', 'comentarios', 'endereco',
                  'descricao_completa', 'descricao_completa2')

    def get_descricao_completa(self, obj):
        return '%s - %s' % (obj.nome, obj.descricao)
Esempio n. 23
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",
        )
Esempio n. 24
0
class PontoTuristicoSerializer(ModelSerializer):
    atracoes = AtracaoSerializer(
        many=True)  # Traz a serializacao do modelo atracao
    endereco = EnderecoSerializer(
    )  # many so usa se o relacionamento for many to many
    descricao_completa = SerializerMethodField(
    )  # incluindo informacoes adicionais
    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):
        # atrela as atracoes ao ponto turistico
        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']  # obtem do post
        del validated_data['endereco']  # deleta

        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)  # creia o endereco no BD
        ponto.endereco = end  # atrela o endereco ao ponto
        ponto.doc_identificacao = doci

        ponto.save()

        return ponto

    def get_descricao_completa(self, obj):
        return '%s - %s' % (obj.nome, obj.descricao)
Esempio n. 25
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)
Esempio n. 26
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)
Esempio n. 27
0
class PontoTuristicoSerializer(ModelSerializer):
    atracoes = AtracaoSerializer(many=True)
    endereco = EnderecoSerializer()

    #     comentarios = ComentarioSerializer(many=True)
    #     avaliacoes = AvaliacaoSerializer(many=True)

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

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

    def extract_endereco(self, validated_data):
        endereco = validated_data['endereco']
        del validated_data['endereco']
        return endereco

    def create_atracoes(self, atracoes, ponto_turistico):
        for atracao in atracoes:
            nova_atracao = Atracao.objects.create(**atracao)
            ponto_turistico.atracoes.add(nova_atracao)

    def create_endereco(self, endereco, ponto_turistico):
        endereco = Endereco.objects.create(**endereco)
        ponto_turistico.endereco = endereco

    def create(self, validated_data):
        atracoes = self.extract_atracao(validated_data)
        endereco = self.extract_endereco(validated_data)
        ponto_turistico = PontoTuristico.objects.create(**validated_data)

        self.create_atracoes(atracoes, ponto_turistico)
        self.create_endereco(endereco, ponto_turistico)
        ponto_turistico.save()

        return ponto_turistico
Esempio n. 28
0
class PontoTuristicoSerializer(ModelSerializer):
    atracoes = AtracaoSerializer(many=True)
    #todo reuso de codigo, atributos.
    endereco = EnderecoSerializer()

    #todo incrementando o meu serializer: com MethodField > adicionando um atributo novo.
    descricao_completa = SerializerMethodField()

    class Meta:
        model = PontoTuristico
        #todo warning cuidado com os espaços ao criar os atributos -  Hehe
        fields = ('id', 'nome', 'descricao', 'aprovado', 'foto', 'atracoes',
                  'comentarios', 'avaliacoes', 'endereco',
                  'descricao_completa', 'descricao_completa2')

    #todo descricao_completa2 -> classe modelo hehe

    #todo o retorno serão os atributos concatenados .
    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)
Esempio n. 30
0
class PontoTuristicoSerializer(ModelSerializer):
    atracoes = AtracaoSerializer(many=True)
    avaliacoes = AvaliacaoSerializer(many=True, read_only=True)
    comentarios = ComentarioSerializer(many=True, read_only=True)
    endereco = EnderecoSerializer(many=False)

    descricao_completa = SerializerMethodField()

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

    def create_endereco(self, endereco, ponto):
        novo_endereco = Endereco.objects.create(**endereco)
        ponto.endereco = novo_endereco

    def create_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']
        
        ponto = PontoTuristico.objects.create(**validated_data)

        self.create_atracoes(atracoes, ponto)
        self.create_endereco(endereco, ponto)

        return ponto

    def get_descricao_completa(self, obj):
        return '{}: {}'.format(obj.nome, obj.descricao)