Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Gostaria de fazer a busca por TAGs funcionar. Alguem tem alguma ideia?

Tem uma parte no index que é Busque pelas TAGs. O trecho de código html abaixo:

<section class="tags">
                    <p class="tags__titulo">Busque por tags:</p>
                    <ul class="tags__lista">
                        <li class="tags__tag">Nebulosa</li>
                        <li class="tags__tag">Estrela</li>
                        <li class="tags__tag">Galáxia</li>
                        <li class="tags__tag">Planeta</li>
                    </ul>
                </section>

Minha ideia era quando clicada cada uma das tags chamar a pagina buscar e passar o parametro. Alguém tem alguma dica para funcionar. Sem ter que transformar elas em botão?

1 resposta
solução!

Para fazer a busca por tags funcionar no seu projeto Django sem transformar as tags em botões, você pode usar links (<a> tags) com parâmetros de URL. Aqui está um exemplo de como você pode modificar o seu código HTML e adicionar um pouco de JavaScript para tornar as tags clicáveis e redirecionar para uma página de busca com o parâmetro desejado.

Passo 1: Modificar o HTML

Você vai envolver cada tag em um elemento <a> que aponta para a URL de busca com o parâmetro da tag.

<section class="tags">
    <p class="tags__titulo">Busque por tags:</p>
    <ul class="tags__lista">
        <li class="tags__tag"><a href="/buscar?tag=Nebulosa">Nebulosa</a></li>
        <li class="tags__tag"><a href="/buscar?tag=Estrela">Estrela</a></li>
        <li class="tags__tag"><a href="/buscar?tag=Galáxia">Galáxia</a></li>
        <li class="tags__tag"><a href="/buscar?tag=Planeta">Planeta</a></li>
    </ul>
</section>

Passo 2: Configurar a URL no Django

No seu arquivo urls.py, você precisa adicionar uma rota que capte o parâmetro tag.

from django.urls import path
from . import views

urlpatterns = [
    path('buscar/', views.buscar, name='buscar'),
]

Passo 3: Criar a View

Em views.py, você deve criar a função que será chamada quando a URL for acessada. Essa função irá capturar a tag passada como parâmetro e você pode usá-la para buscar os dados relacionados.

from django.shortcuts import render

def buscar(request):
    tag = request.GET.get('tag', '')
    # Aqui você busca os dados relacionados à tag
    resultados = Modelo.objects.filter(tag__icontains=tag)  # Modifique conforme seu modelo de dados
    return render(request, 'resultado_busca.html', {'resultados': resultados})

Passo 4: Criar o Template de Resultado

Finalmente, você deve criar um template resultado_busca.html que exiba os resultados da busca.

<h2>Resultados para '{{ tag }}'</h2>
<ul>
    {% for resultado in resultados %}
    <li>{{ resultado.nome }}</li>  <!-- Modifique conforme os atributos do seu modelo -->
    {% endfor %}
</ul>

Esse setup simples irá permitir que você clique em qualquer tag e seja redirecionado para uma página de resultados correspondentes à tag selecionada, mantendo o layout original sem usar botões e utilizando a funcionalidade completa de Django para gerenciar os parâmetros de URL e a busca no banco de dados.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade