【问题标题】:Django create date list from existing objectsDjango 从现有对象创建日期列表
【发布时间】:2016-12-09 20:58:06
【问题描述】:

我对如何根据现有对象制作链接日期列表产生了疑问,首先我有一个带有 DateTimeField 的模型,它存储添加对象的日期和时间。

我有类似的东西:

|pk|名称|日期
|1|名称 1|2016-08-02 16:14:30.405305
|2|名称 2|2016-08-02 16:15:30.405305
|3|姓名 3|2016-08-03 16:46:29.532976
|4|名称 4|2016-08-04 16:46:29.532976

而且我有一些同一天但不同小时的记录,我想要制作一个仅显示唯一日期的列表:

2016-08-02
2016-08-03
2016-08-04

而且因为我使用的是 CBV DayArchiveView,所以我想添加一个指向该元素的链接,以便每天使用这样的 url 模式列出它们:

url(r'^archive/(?P<year>[0-9]{4})/(?P<month>[-\w]+)/(?P<day>[0-9]+)/$', ArticleDayArchiveView.as_view(), name="archive_day"),

事实是我不知道如何实现这一点,你能帮我吗?

【问题讨论】:

    标签: django datetime django-views


    【解决方案1】:

    提取唯一日期

    instances = YourModel.objects.all()
    unique_dates = list(set(map(lambda x: x.date.strftime("%Y-%m-%d"), instances)))
    

    关于列出它们,您的 url 模式看起来不错。您需要定义一个视图以检索它们并与该 url 连接。

    更新

    如果您想订购它们,只需:

    sorted_dates = sorted(unique_dates)
    

    【讨论】:

    • 谢谢,效果很好,还可以订购日期和分页吗?因为它显示:列表无序
    猜你喜欢
    • 1970-01-01
    • 2021-03-02
    • 2012-10-02
    • 2011-03-26
    • 2018-09-16
    • 2013-11-18
    • 2013-05-06
    • 2012-11-07
    • 2018-02-11
    相关资源
    最近更新 更多