如何在Django中为类别之一创建链接

时间:2018-08-03 22:56:42

标签: django django-models django-templates django-views

我正在为新闻网站编写代码。新闻模型中有“类别”。

我想在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"),

0 个答案:

没有答案