01.04
Hoje um amigo da faculdade no qual está desenvolvendo seu ‘Trabalho de Conclusão de Curso’ com o Django, perguntou-me como poderia ser feito o upload de arquivos guardando sua referência no banco de dados, e nisso passei um exemplo de um pequeno projeto que utilizei o modelForms.
Com isso resolvi criar um post para caso alguém um dia venha ter essa mesma dúvida. Antes de tudo é imprescindível que tenha em mente que trabalhar com modelForms é criar formulários a partir de um modelo previamente criado em seu arquivo models.py de seu projeto.
1 class Cadastro(models.Model):2 nome = models.CharField(max_length=60)3 idade = models.CharField(max_length=100)4 cidade = models.CharField(max_length=100)5 telefone = models.CharField(max_length=10)6 curriculo = models.FileField(upload_to="curriculos")7 portfolio = models.URLField()8 mensagem = models.TextField()
Partindo de uma model criada com os respectivos tipos de campos que deseja, assim como nosso maior propósito neste post, é o campo de ‘curriculo’ que será responsável por salvar a referência do arquivo copiado para o servidor. Com sua model já criada, é necessário que criemos agora o nosso formulário a partir dessa model, e para isso precisaremos escrever um bucado de código (mentira! 1º de abril… rs).
Em seu arquivo forms.py importe a model que acabou de criar e tcharam:
1 class CadastroForm(ModelForm):2 class Meta:3 model = Cadastro
Pronto, seu formulário já está criado! Agora só falta renderizarmos ele na tela e salvá-lo, então agora abra seu arquivo views.py e crie a seguinte view:
01 def cadastro_curriculo(request):02 03 if request.method == 'POST':04 form = CadastroForm(request.POST, request.FILES)05 if form.is_valid():06 novo_cadastro = form.save()07 if novo_cadastro:08 aviso = "Seu cadastro foi realizado com sucesso"09 form = CadastroForm()10 else:11 aviso = "Erro ao cadastrar"12 form = CadastroForm()13 else:14 form = CadastroForm()15 16 return render_to_response('projeto/cadastro.html', locals(), context_instance=RequestContext(request))
Com isso, basta criar uma url para a view criada e testar! Só uma observação quanto a criar a instância do formulário, pois como queremos fazer o upload de arquivos para o servidor, é necessário passar a váriavel FILES como parâmetro.
Não há comentários ainda.
Deixe seu comentário