我有一組博客文章,為每個文章定義了一個類別。單一類別頁面顯示指定類別下的所有帖子,但我希望這些帖子按寫入日期排序。
這是我所擁有的:
def single_category(request, slug):
category = get_object_or_404(Category, slug=slug)
categories = Category.objects.all()
context = {
'category': category,
'categories': categories
}
return render(request, 'Blog/single-category.html', context)
這不起作用,但這是我想要的:
def single_category(request, slug):
category = get_object_or_404(Category.objects.order_by('-written_on'), slug=slug)
categories = Category.objects.all()
context = {
'category': category,
'categories': categories
}
return render(request, 'Blog/single-category.html', context)
這是我的類別和帖子模型
class Category(models.Model):
name = models.CharField(max_length=120)
slug = models.SlugField(max_length=120)
class Meta:
verbose_name_plural = 'Categories'
def __str__(self):
return self.name
def get_absolute_url(self):
return '/%s/' % self.slug
class Post(models.Model):
name = models.CharField(max_length=120)
slug = models.SlugField(max_length=120)
post_category = models.ForeignKey(Category, related_name='post',
on_delete=models.CASCADE)
post_summary = models.TextField(max_length=120)
post_content = models.TextField()
written_on = models.DateField()
preview_image = models.ImageField()
homepage_carousel_status = models.IntegerField(choices=STATUS,
default=0)
def __str__(self):
return self.name
def get_absolute_url(self):
return '/%s/%s/' % (self.post_category.slug, self.slug)
uj5u.com熱心網友回復:
您可以獲取相關的Posts 并按降序對它們進行written_on排序:
def single_category(request, slug):
category = get_object_or_404(Category, slug=slug)
posts = Post.objects.filter(post_category=category).order_by('-written_on')
categories = Category.objects.all()
context = {
'category': category,
'categories': categories,
'posts': posts
}
return render(request, 'Blog/single-category.html', context)
在模板中,您因此列舉了posts, 而不是category.post:
{% for post in posts %}
…
{% endfor %}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/355219.html
