Skip to main content
 首页 » 编程设计

python之Django:下拉列表

2024年10月25日28oomusou

我有一个模型“Post”,它就像一篇博文:

class Post(models.Model): 

每个帖子都有一个 pub_date 属性:

pub_date = models.DateField() 

在我的网站上显示帖子时,我希望在页面顶部有一个简单的下拉菜单,其结构如下:

  • 2014
    • 简
    • 二月
  • 2013
  • 2012

等等。我不知道如何用 Django 像这样对我的帖子进行排序,我认为硬编码是不好的做法。你会如何解决这个问题?

请您参考如下方法:

你可以使用类似的东西:

posts = Post.objects.all() 
sortedposts = {} 
for p in posts: 
    sortedposts.setdefault(p.pub_date.year, {})\ 
               .setdefault(p.pub_date.strftime('%b'), [])\ 
               .append(p) 

这会给你结构:

sortedposts = { 
    2014: { 
      'Jan': [<post4>, <post3>],  
      'Feb': [<post2>] 
    }, 
    2013: { 
      'Jul': [<post1>] 
    } 
}