0
Я пытаюсь получить последнее сообщение для каждой категории в моем приложении для форума. Я пробовал такие вещи, как Category.objects.order_by('catID').annotate(latestpost=Post.objects.order_by('-pub_date')[:1])
Я хочу, чтобы иметь возможность использовать значения: postID
, title
, user
и pub_date
в моем шаблоне.Получить последнее сообщение для категории
models.py:
class Category(models.Model):
catID = models.CharField(max_length=20, primary_key=True)
title = models.CharField(max_length=200)
description = models.CharField(max_length=200)
class Post(models.Model):
postID = models.CharField(max_length=10, primary_key=True)
catID = models.ForeignKey(Category)
user = models.CharField(max_length=100)
title = models.CharField(max_length=200)
content = models.TextField()
pub_date = models.DateTimeField(auto_now=True)
views.py:
def index(request):
cats = Category.objects.order_by('catID').annotate(latestpost=Post.objects.order_by('-pub_date')[:1])
context = {'forum_cats': cats}
return render(request, 'forums/index.html', context)
О, ничего себе. Это действительно здорово! Спасибо :) – Jeremy
Или используйте описанную здесь опцию «get_latest_by» для метаданных [здесь] (https://docs.djangoproject.com/en/dev/ref/models/options/#get-latest-by) –