Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Dúvida] Order by não está funcionando

Meu arquivo views

from django.shortcuts import render, get_object_or_404

from galeria.models import Fotografia

def index(request):
    fotografias = Fotografia.objects.order_by("-data_fotografia").filter(publicada=True)
    fotografias = Fotografia.objects.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})

Arquivo models

from django.db import models
from datetime import datetime



class Fotografia(models.Model):
    OPCOES_CATEGORIA = [ 
        ("NEBULOSA", "Nebulosa"),
        ("ESTRELA ", "Estrela"),
        ("GALAXIA", "Galaxia"),
        ("PLANETA", "Planeta")
    ]
    nome = models.CharField(max_length=100, null=False, blank=False)
    legenda = models.CharField(max_length=150, null=False, blank=False)
    categoria = models.CharField(max_length=100, choices= OPCOES_CATEGORIA, default='')
    descricao = models.TextField(null=False, blank=False)
    foto = models.ImageField(upload_to="fotos/%Y/%m/%d/", blank=True)
    publicada = models.BooleanField(default=False)
    data_fotografia = models.DateField(default=datetime.now, blank=False)

Mesmo trocando o parâmetro do oder_by para "data_fotografia" etc.. a ordem continua a mesma. Tentei usar por id tbm e não rolou. Fiz a querry usando o all e tbm não deu certo. Eu estava ignorando o erro, mas vi a necessidade de dar um um jeito. Se alguém puder dar um help.

3 respostas
solução!

Bom dia, Gabriel!

Existe a necessidade da dupla utilização do filter() nas linhas abaixo?

    fotografias = Fotografia.objects.order_by("-data_fotografia").filter(publicada=True)
    fotografias = Fotografia.objects.filter(publicada=True)

Por algum motivo no curso ficou assim e funcionou. Nem imagei que a variável de baixo tava sobrevesvendo a de cima. Minha lógica não está dia haha. Muito obrigado, Heber!

Acontece, meu caro... haha

Fico feliz em ter funcionado.