在查询中使用filter和order_by

时间:2015-01-20 04:34:43

标签: django django-views

我想创建一个简单的博客,在按类别筛选的索引页面中显示5个新帖子。我读了另一个问题,但是当我尝试它时根本不起作用

list_blog_canada = Blog.objects.filter(category_id=1).order_by('publish')

我想知道这没有任何问题,问题出现在我的模型中?什么

models.py

class Category(models.Model):
    title = models.CharField(max_length=100)
    slug = models.SlugField(max_length=100, unique=True)

    def __str__(self):
        return self.title

class Blog(models.Model):
    title = models.CharField(max_length=100)
    slug = models.SlugField(max_length=100, unique=True)
    content = models.TextField()
    publish = models.DateTimeField(auto_now=True)
    category = models.ForeignKey(Category)

的index.html

{% if listblogca %}
                        {% for entry in listblogca|slice:':5' %}
                            <ul><li><a href="/baiviet/{{ entry.slug }}/">{{ entry.title|truncatechars:25 }}</a></li></ul>
                        {% endfor %}
                        {% else %}
                            <h4>THERE ARE NO POSTS</h4>
                {% endif %}

感谢您的阅读。我希望我能尽快得到你的帮助

2 个答案:

答案 0 :(得分:2)

如果您想获得最新的帖子,则需要在-方法中将order_by符号添加到字段名称中:

list_blog_canada = Blog.objects.filter(category__id=1).order_by('-publish')

升序/降序的文档为here

答案 1 :(得分:0)

似乎Blog对象没有category_id字段。

以下是查询的一些文档 https://docs.djangoproject.com/en/dev/topics/db/queries/#lookups-that-span-relationships

相关问题