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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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 :)