fiz as modificações no index.html e também na views.py.
O problema está nesse código, quando eu retiro ele e salvo, o servidor volta.
'<int:receita_id>'
Como resolvo?
fiz as modificações no index.html e também na views.py.
O problema está nesse código, quando eu retiro ele e salvo, o servidor volta.
'<int:receita_id>'
Como resolvo?
Oi Igor, tudo bem?
Consegue colar seu código da urls.py?
Viu se tem a vírgula no final da linha de cima?
urls.py:
from django.contrib import admin
from django.urls import path, include
from receitas import views
urlpatterns = [
path('', views.index, name='index'),
path('admin/', admin.site.urls),
views.py: from django.shortcuts import render, get_object_or_404, get_list_or_404 from .models import Receita
def index(request):
receitas = Receita.objects.all()
dados = {
'receitas': receitas
}
return render(request, 'index.html',dados)
def receita(request, receita_id):
receita = get_object_or_404(Receita, pk=receita_id)
receita_a_exibir = {
'receita': receita
}
return render(request, 'receita.html', receita_a_exibir)
index.html:
<!-- ##### Best Receipe Area Start ##### -->
<section class="best-receipe-area">
<div class="container">
<div class="row">
{% if receitas %}
{% for receita in receitas %}
<!-- Single Best Receipe Area -->
<div class="col-12 col-sm-16 col-lg-4">
<div class="single-best-receipe-area mb-30">
<img src="{% static 'img/bg-img/foto_receita.png' %}"></img>
<div class="receipe-content">
<a href="{% url 'receita' %}">
<h5>{{ receita.nome_receita }}</h5>
</a>
</div>
</div>
</div>
{% endfor %}
{% else %}
{% endif %}
</div>
</div>
</section>
menu.html:
<!-- Nav Start -->
<div class="classynav">
<ul>
<li><a href="{% url 'index' %}">Home</a></li>
</ul>
Oi Igor,
Acho que você confundiu os arquivos urls.py
Esse arquivo urls.py
que você mostrou é do projeto. Ele fica no caminho alurareceita/urls.py
Nele ficam apenas o include do arquivo receitas/urls.py
, e a configuração da página admin/
:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('', include('receitas.urls')),
path('admin/', admin.site.urls),
]
E é no arquivo receitas/urls.py
que definimos as páginas do site propriamente dito:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('<int:receita_id>', views.receita, name='receita')
]
Igor, tudo bem?
Em index.html, a url está com um parâmetro faltando.
Seu código:
<div class="receipe-content">
<a href="{% url 'receita' %}">
<h5>{{ receita.nome_receita }}</h5>
</a>
</div>
Com o parâmetro (que você definiu na view (receita_id)):
<div class="receipe-content">
<a href="{% url 'receita' receita.id %}">
Pois, assim, você passa o parâmetro necessário para que a view receita funcione,
Espero ter ajudado :)