如何在Django中获得同一类别中的所有帖子 [英] How to get all the post in the same category in Django

查看:55
本文介绍了如何在Django中获得同一类别中的所有帖子的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在编写新闻网站.新闻模型中有类别".

I'm coding a news website.I have 'category' in News model.

现在,我想获取所有名为观点"类别的新闻.但是得到:对于以10为底的int(),无效的文字:'观点'

Now I want to get all the news in one of the categories named 'opinion'. But get: invalid literal for int() with base 10: 'opinion'

这是我的新闻模型的一部分:

here is part of my News model:

    class News(models.Model):
        category = models.ForeignKey(Category, on_delete=models.CASCADE, related_name="cate", blank=True, verbose_name='分类')

这是我的类别模型:

class Category(models.Model):
    name = models.CharField(max_length=40)  # 分类名

    class Meta:
        verbose_name = "分类"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name

这是我观点的一部分:

class NewsView(View):

    def get(self, request):
        opinion_news = News.objects.filter(category="opinion")

        return render(request, 'index.html', {

            'opinion_news': opinion_news,

        })

这是我的index.html

here is part of my index.html

            {% for opinion in opinion_news %}
            <li class="media">
               <h>{{opinion.title}}</h>
            </li>
            {% endfor %}

有什么朋友可以帮忙吗?非常感谢!

Any friend can help?Thank you so much!

推荐答案

默认情况下,按外键使用id字段(整数)进行过滤.要使用类别模型的另一个字段,请使用 __ fieldname 语法.例如,如果 category 模型具有 name 字段:

By default filtering by foreignkey use id field (integer). To use another field of category model use __fieldname syntax. For instance if category model has name field:

opinion_news = News.objects.filter(category__name="opinion")

这篇关于如何在Django中获得同一类别中的所有帖子的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆