python - Django:下拉列表

标签 python django drop-down-menu organization

我有一个模型“帖子”,它就像一篇博客文章:

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>]
    }
}

关于python - Django:下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24579806/

相关文章:

python - 理解 FeatureUnion (pandas) 工作的困惑

django - Elastic Beanstalk 环境的健康状况严重 : Following services are not running: release

ruby-on-rails - 编辑条目时返回 collection_select 中的原始选择

javascript - HTML 中的无效字符阻止我的菜单切换?

javascript - Codeigniter 中的动态选择选项

python - 替换 Pandas 中棘手的列名称

python - 如何按特定时间窗口对数据进行分组,其中第二个时间是第二天

python - 这个合并排序 python 代码有什么问题?

python - 覆盖 Django 的重置密码电子邮件模板

javascript - 有没有一种标准方法可以将 "copy and paste"Javascript 代码添加到 Django 项目中?