view.py
from django.shortcuts import render, get_object_or_404, redirect
from galeria.models import Foto, Fotografia
from django.contrib import messages
def index(request):
if not request.user.is_authenticated:
messages.error(request, 'Usuário não logado')
return redirect('login')
fotografias = Fotografia.objects.order_by("data_fotografia").filter(publicada=True)
return render(request, 'galeria/index.html', {"cards": fotografias})
def imagem(request, foto_id):
fotografia = get_object_or_404(Fotografia, pk=foto_id)
return render(request, 'galeria/imagem.html', {"fotografia": fotografia})
def buscar(request):
if not request.user.is_authenticated:
messages.error(request, 'Usuário não logado')
return redirect('login')
fotografias = Fotografia.objects.order_by("data_fotografia").filter(publicada=True)
if "buscar" in request.GET:
nome_a_buscar = request.GET['buscar']
if nome_a_buscar:
fotografias = fotografias.filter(nome__icontains=nome_a_buscar)
return render(request, "galeria/buscar.html", {"cards": fotografias})
from django.shortcuts import render
from .forms import Foto # Certifique-se de importar o formulário correto
def cadastro_fotos(request):
if request.method == 'POST':
form = Foto(request.POST, request.FILES)
if form.is_valid():
nome_foto = form.cleaned_data['nome_foto']
legenda = form.cleaned_data['legenda']
descricao = form.cleaned_data['descricao']
responsavel = form.cleaned_data['responsavel']
form.save()
# Redirecionar para uma página de sucesso
return render(request, 'cadastro_sucesso.html')
else:
form = Foto() # Inicializa o formulário vazio para requisições GET
return render(request, 'cadastro_fotos.html', {'form': form})
urls.py
from django.urls import path
from galeria.views import cadastro_fotos, index, imagem, buscar
urlpatterns = [
path('', index, name='index'),
path('imagem/<int:foto_id>', imagem, name='imagem'),
path('buscar', buscar, name='buscar'),
path('cadastro-foto/',cadastro_fotos, name='cadastro_fotos'),
forms.py
from django import forms
from .models import Foto
class FotoForm(forms.ModelForm):
nome_foto=forms.CharField(
label='nome_foto',
required=True,
max_length=100,
widget=forms.TextInput(
attrs={
'class': 'form-control',
'placeholder': 'Ex.: Nebulosa',
}
)
)
legenda=forms.CharField(
label='Legenda',
required=True,
max_length=100,
widget=forms.TextInput(
)
)
descricao=forms.CharField(
label='Descrição',
required=True,
max_length=100,
widget=forms.TextInput(
)
)
responsavel=forms.CharField(
label='Responsavel',
required=True,
max_length=100,
widget=forms.TextInput(
)
)
class FotoForm(forms.ModelForm):
imagem=forms.ImageField(
)
class Meta:
model = Foto
fields = ['nome_foto', 'legenda', 'descricao', 'upload_foto', 'responsavel']
def __init__(self, *args, **kwargs):
super(FotoForm, self).__init__(*args, **kwargs)
self.fields['upload_foto'].widget.attrs['accept'] = 'image/*'