Olá Jean! Tudo bem com você? Espero que sim!
Peço desculpa pela demora em responder o seu tópico.
Realmente, a configuração correta para o upload de imagens pode ser um pouco confusa no início.
Uma solução simples para o seu problema é utilizar a biblioteca Pillow em conjunto com o Django. Com ela, você poderá facilmente fazer o upload e salvar as imagens no banco de dados.
Aqui está um exemplo básico de como realizar o upload de uma imagem em um formulário Django:
1 - Primeiro, certifique-se de ter a biblioteca Pillow instalada em seu ambiente virtual. Você pode instalá-la executando o seguinte comando no terminal: pip install pillow
.
2 - Em seu modelo de funcionário, adicione um campo do tipo ImageField
para armazenar a imagem. Por exemplo:
from django.db import models
class Funcionario(models.Model):
cpf = models.CharField(max_length=11)
nome = models.CharField(max_length=100)
foto = models.ImageField(upload_to='fotos/')
3 - No seu formulário Django, adicione um campo do tipo FileField
para permitir o upload da imagem. Por exemplo:
from django import forms
class FuncionarioForm(forms.ModelForm):
class Meta:
model = Funcionario
fields = ['cpf', 'nome', 'foto']
4 - Em sua view, você precisará tratar o formulário e salvar a imagem corretamente. Por exemplo:
from django.shortcuts import render, redirect
from .forms import FuncionarioForm
def cadastrar_funcionario(request):
if request.method == 'POST':
form = FuncionarioForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('pagina_sucesso')
else:
form = FuncionarioForm()
return render(request, 'cadastro.html', {'form': form})
5 - Por fim, em seu template HTML, você precisará adicionar o atributo enctype="multipart/form-data"
ao formulário para permitir o upload de arquivos. Por exemplo:
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Cadastrar</button>
</form>
Com essas alterações, você deverá conseguir fazer o upload e salvar a imagem corretamente no banco de dados.
Uma alternativa dessa implementação é usando funcionalidades internas do próprio Django. Para entender melhor como funciona, estarei deixando o link de um post de blog que faz upload de imagens usando Django.
Espero ter ajudado. Se tiver alguma dúvida, estou à disposição!
Grande abraço e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.