Segue os trechos de código. nova_imagem.html:
{% extends 'shared/base.html' %}
{% load static %}
{% block content %}
<section class="galeria" style="margin-left: 5em">
<form action="{% url 'login' %}" method="POST">
{% csrf_token %}
<div class="row">
{% for field in form.visible_fields %}
<div class="col-12 col-lg-12" style="margin-bottom: 10px;">
<label for="{{ field.id_for_label }}" style="color:#D9D9D9; margin-bottom: 5px;">{{field.label}}</label>
{{ field }}
</div>
{% endfor %}
</div>
<div>
<button type="submit" class="btn btn-success col-12" style="padding: top 5px;">Logar</button>
</div>
</form>
</section>
</main>
</div>
</body>
{% endblock %}
forms.py:
from django import forms
from apps.galeria.models import Fotografia
class FotografiaForms(forms.ModelForm):
class Meta:
model: Fotografia
exclude = ['publicada',]
widgets = {
'nome': forms.TextInput(attrs={'class':'form-control'}),
'legenda': forms.TextInput(attrs={'class':'form-control'}),
'categoria': forms.Select(attrs={'class':'form-control'}),
'descricao': forms.Textarea(attrs={'class':'form-control'}),
'foto': forms.FileInput(attrs={'class':'form-control'}),
'data_fotografia': forms.DateInput(
format = '%d/%m/%Y',
attrs={
'type': 'date',
'class':'form-control',
}
),
'usuario': forms.Select(attrs={'class':'form-control'}),
}
views.py:
from django.shortcuts import render, get_object_or_404, redirect
from apps.galeria.models import Fotografia
from apps.galeria.forms import FotografiaForms
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})
def nova_imagem(request):
form = FotografiaForms
return render(request, 'galeria/nova_imagem.html', {'form': form})
def editar_imagem(request):
pass
def deletar_imagem(request):
pass
urls.py:
from django.urls import path
from apps.galeria.views import \
index, imagem, buscar, nova_imagem, editar_imagem, deletar_imagem
urlpatterns = [
path('', index, name='index'),
path('imagem/<int:foto_id>', imagem, name='imagem'),
path('buscar', buscar, name='buscar'),
path('nova_imagem', nova_imagem, name='nova_imagem'),
path('editar_imagem', editar_imagem, name='editar_imagem'),
path('deletar_imagem', deletar_imagem, name='deletar_imagem'),
]