我正在为新闻网站编写代码。新闻模型中有“类别”。
我想在index.html中获得名为“观点”类别之一的所有新闻。并为它们每个创建详细信息页面链接。
我可以找到上述新闻的标题,作者等。但是我的大脑真的很烂,我不知道如何为每个新闻创建指向Opinion_new.html或news_detail.htlm的链接。常规新闻的链接指向news_detail.htlm。
如果您不太了解我的要求,还请多读我最后一个问题How to get all the post in the same category in Django!
这是我的新闻模型的一部分:
class News(models.Model):
category = models.ForeignKey(Category, on_delete=models.CASCADE, related_name="cate", blank=True, verbose_name='分类')
这是我的类别模型:
class Category(models.Model): 名称= models.CharField(max_length = 40)#分类名
class Meta:
verbose_name = "分类"
verbose_name_plural = verbose_name
def __str__(self):
return self.name
这是我观点的一部分:
NewsView类(查看):
def get(self, request):
opinion_news = News.objects.filter(category="opinion")
return render(request, 'index.html', {
'opinion_news': opinion_news,
})
这是我的index.html
的一部分 {% for opinion in opinion_news %}
<li class="media">
<a href='?'> <h>{{opinion.title}}</h></a>
</li>
{% endfor %}
这是我已经很好用的news_detail视图的一部分。
def newsDetailView(request, news_pk):
news = get_object_or_404(News, id=news_pk)
category = news.category
tags = news.tag.annotate(news_count=Count('news'))
all_comments = NewsComments.objects.filter(news=news)
news.comment_nums = all_comments.count()
news.save()
return render(request, "news_detail.html", {
'news': news,
'tags': tags,
'category': category,
})
这是我的news_detail.html的网址
path('-<int:news_pk>', views.newsDetailView, name="news_detail"),