Django从现有对象创建日期列表

时间:2016-08-03 23:53:37

标签: django datetime django-views

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

我有类似的东西:

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

我有一些记录在同一天但不同的时间,我想要的是制作一个只显示独特日子的列表:

2016年8月2日
2016年8月3日
2016-08-04

还因为我正在使用CBV DayArchiveView我想添加一个链接到这些元素,每天用这样的网址模式列出它们:

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

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

1 个答案:

答案 0 :(得分:1)

提取唯一日期

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

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

<强>更新

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

sorted_dates = sorted(unique_dates)