Problem reading . csv in Python/Django

Asked

Viewed 15 times

1

I am trying to create a new person from a .csv. file My code is as follows:.

models

TIPO_PESSOA = [
    ('PF', 'Pessoa Física'),
    ('PJ', 'Pessoa Jurídica'),
]

class Pessoa(models.Model):
    nome_razao_social = models.CharField(max_length=255)
    tipo_pessoa = models.CharField(max_length=2, choices=TIPO_PESSOA)

views

    def importar_csv(self, request):

        csv_file = request.FILES['file']
        data_set = csv_file.read().decode('UTF-8')
        io_string = io.StringIO(data_set)
        next(io_string)

        colunas_csv = csv.reader(io_string, delimiter=',', quotechar="|")
        qtd_colunas = 0
        dados = {}
        for column in colunas_csv:

            dados['nome_razao_social'] = column[0]
            messages.success(request, str(qtd_colunas) + column[1])
            dados['tipo_pessoa'] = column[1]
            qtd_colunas += 1

        form = PessoaForm(dados)
        if form.is_valid():
            form.save()
            messages.success(request, str(qtd_colunas) + " pessoas cadastradas com sucesso!")
        else:
            messages.error(request, 'Não foi possível importar, verifique os dados da tabela.')

And I’m trying to import the following file .csv

nome_razao_social,tipo_pessoa
Fernando,PF

Only my form is not validating because it is not creating the Pessoa with the guy PF, which would be a natural person. How do I accept a value that has options to be selected, as in this case?

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.