Boa noite! Segui os passos da aula, porém deu erro, já conferi diversas vezes e aparentemente está tudo correto. Conseguem ajudar? Erro:
NoReverseMatch at /
Reverse for 'nova_imagem' not found. 'nova_imagem' is not a valid view function or pattern name.
Request Method: GET
Request URL: http://127.0.0.1:8000/
Django Version: 4.1
Exception Type: NoReverseMatch
Exception Value:
Reverse for 'nova_imagem' not found. 'nova_imagem' is not a valid view function or pattern name.
Exception Location: C:\Users\chanr\AppData\Roaming\Python\Python310\site-packages\django\urls\resolvers.py, line 803, in _reverse_with_prefix
Raised during: apps.galeria.views.index
Python Executable: C:\Program Files\Python310\python.exe
Python Version: 3.10.10
Python Path:
['C:\\cursos\\alura\\2915-projeto-django-4-aula_1',
'C:\\Program Files\\Python310\\python310.zip',
'C:\\Program Files\\Python310\\DLLs',
'C:\\Program Files\\Python310\\lib',
'C:\\Program Files\\Python310',
'C:\\Users\\chanr\\AppData\\Roaming\\Python\\Python310\\site-packages',
'C:\\Program Files\\Python310\\lib\\site-packages']
Server time: Mon, 03 Apr 2023 22:48:16 -0300
Error during template rendering
In template C:\cursos\alura\2915-projeto-django-4-aula_1\templates\partials\_menu.html, error at line 24
Reverse for 'nova_imagem' not found. 'nova_imagem' is not a valid view function or pattern name.
14 </div>
15 </div>
16 </header>
17 <main class="principal">
18 <section class="menu-lateral">
19 <nav class="menu-lateral__navegacao">
20 <a href="{% url 'index' %}"><img src="{% static '/assets/ícones/1x/Home - ativo.png' %}"> Home</a>
21 <a href="{% url 'login' %}"><img src="{% static '/assets/ícones/1x/Mais vistas - inativo.png' %}"> Login</a>
22 <a href="{% url 'cadastro' %}"><img src="{% static '/assets/ícones/1x/Novas - inativo.png' %}"> Cadastro</a>
23 <a href="{% url 'logout' %}"><img src="{% static '/assets/ícones/1x/Surpreenda-me - inativo.png' %}"> Logout</a>
24 <a href="{% url 'nova_imagem' %}"><img src="{% static '/assets/ícones/1x/Surpreenda-me - ativo.png' %}"> Nova Imagem</a>
25 </nav>
26 </section>
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'),
]
views.py:
from django.shortcuts import render, get_object_or_404, redirect
from apps.galeria.models import 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})
def nova_imagem(request):
return render(request, 'galeria/nova_imagem.html')
def editar_imagem(request):
pass
def deletar_imagem(request):
pass
nova_imagem.html:
<h1>Hello nova imagem</h1>