基于日期的混入¶
注解
这些混入中的所有日期格式化属性都使用 strftime()
格式字符,请不要尝试使用 now
模板标签的格式字符,因为它们不兼容。
YearMixin
¶
-
class
YearMixin
¶ 一个可用于检索和提供日期的年份成分解析信息的混入。
**方法和属性*
-
year_format
¶ strftime()
格式,解析年份时使用。默认情况下,是'%Y'
。
-
year
¶ 可选的 年数值,为字符串。默认情况下,设置为
None
,这意味着年份将通过其他方式确定。
-
get_year_format
()¶ 返回
strftime()
在解析年份时使用的格式。默认返回year_format
。
-
get_year
()¶ 返回此视图将显示数据的年份,为一个字符串。按顺序尝试以下来源:
YearMixin.year
属性的值。- URL 模式中捕获的
year
参数值。 GET
查询year
参数的值。
如果找不到有效的年份规格,则引发 404。
-
get_next_year
(date)¶ 返回一个日期对象,包含提供的日期后的第一年的第一天。根据
allow_empty
和allow_future
的值,该函数也可以返回None
或引发Http404
异常。
-
get_previous_year
(date)¶ 返回一个日期对象,包含所提供日期前一年的第一天。根据
allow_empty
和allow_future
的值,该函数也可以返回None
或引发Http404
异常。
-
MonthMixin
¶
-
class
MonthMixin
¶ 一个可用于检索并提供日期中月份成分的解析信息的混入。
**方法和属性*
-
month_format
¶ strftime()
格式在解析月份时使用。默认情况下,是'%b'
。
-
month
¶ 可选的 月份数值,为字符串。默认情况下,设置为
None
,这意味着月份将通过其他方式确定。
-
get_month_format
()¶ 返回
strftime()
在解析月份时使用的格式。默认返回month_format
。
-
get_month
()¶ 以字符串形式返回此视图将显示数据的月份。 按顺序尝试以下来源:
MonthMixin.month
属性的值。- URL 模式中捕获的
month
参数值。 GET
查询month
参数的值。
如果找不到有效的月份规格,则引发 404。
-
get_next_month
(date)¶ 返回一个日期对象,包含提供的日期后的第一个月的第一天。根据
allow_empty
和allow_future
的值,该函数也可以返回None
或引发Http404
异常。
-
get_previous_month
(date)¶ 返回一个日期对象,包含所提供日期前一个月的第一天。根据
allow_empty
和allow_future
的值,该函数也可以返回None
或引发Http404
异常。
-
DayMixin
¶
-
class
DayMixin
¶ 一个可用于检索并提供日期中的日期成分的解析信息的混入。
**方法和属性*
-
day_format
¶ strftime()
格式,在解析日期时使用。默认情况下,是'%d'
。
-
day
¶ 可选的 日期的数值,为字符串。默认情况下,设置为
None
,这意味着将使用其他方式确定日期。
-
get_day_format
()¶ 返回
strftime()
格式,用于解析当天的情况。默认返回day_format
。
-
get_day
()¶ 返回此视图将显示数据的日期,为一个字符串。按顺序尝试以下来源:
DayMixin.day
属性的值。- URL 模式中捕获的
day
参数值。 GET
查询day
参数的值。
如果找不到有效的日期规格,则引发 404。
-
get_next_day
(date)¶ 返回一个日期对象,包含提供的日期后的下一个有效日期。根据
allow_empty
和allow_future
的值,该函数也可以返回None
或引发Http404
异常。
-
get_previous_day
(date)¶ 返回一个包含前一天有效日期的日期对象。根据
allow_empty
和allow_future
的值,该函数也可以返回None
或引发Http404
异常。
-
WeekMixin
¶
-
class
WeekMixin
¶ 一个可用于检索和提供日期的周成分的解析信息的混入。
**方法和属性*
-
week_format
¶ strftime()
格式,解析一周时使用。默认情况下,它是'%U'
,这意味着一周从周日开始。如果你的星期从周一开始,则设置为'%W'``或 ``'%V'
(ISO 8601 星期)。New in Django 3.2:增加了对
'%V'
周格式的支持。
-
week
¶ 可选的 周数值,为字符串。默认情况下,设置为
None
,这意味着将使用其他方式确定星期。
-
get_week_format
()¶ 返回
strftime()
在解析星期时要使用的格式。默认返回week_format
。
-
get_week
()¶ 返回此视图将显示数据的星期,为字符串。按顺序尝试以下来源:
WeekMixin.week
属性的值。- URL 模式中捕获的
week
参数值。 GET
查询week
参数的值。
如果找不到有效的周数规格,则引发 404。
-
get_next_week
(date)¶ 返回一个日期对象,包含提供的日期后的一周第一天。根据
allow_empty
和allow_future
的值,该函数也可以返回None
或引发Http404
异常。
-
get_prev_week
(date)¶ 返回一个日期对象,包含提供的日期前一周的第一天。根据
allow_empty
和allow_future
的值,该函数也可以返回None
或引发Http404
异常。
-
DateMixin
¶
-
class
DateMixin
¶ 一个混入类,为所有基于日期的视图提供通用行为。
**方法和属性*
-
date_field
¶ QuerySet
模型中DateField
或DateTimeField
的名称,基于日期的档案应使用该名称来确定页面上显示的对象列表。当 时区支持 被启用,并且
date_field
是DateTimeField
时,日期被认为是在当前时区。否则,查询集可以包括最终用户时区的前一天或第二天的对象。警告
在这种情况下,如果你已经实现了每个用户的时区选择,那么根据最终用户的时区,同一个 URL 可能会显示一组不同的对象。为了避免这种情况,你应该使用一个
DateField
作为date_field
属性。
-
allow_future
¶ 一个布尔值,用于指定是否将“未来”对象列入本页,其中“未来”是指
date_field
中指定的字段大于当前日期/时间的对象。默认情况下,这是False
。
-
get_date_field
()¶ 返回包含日期数据的字段名,该字段将在此视图上操作。默认返回
date_field
。
-
get_allow_future
()¶ 确定是否将“未来”对象包含在本页中,“未来”是指在
date_field
中指定的字段大于当前日期/时间的对象。默认返回allow_future
。
-
BaseDateListView
¶
-
class
BaseDateListView
¶ 一个为所有基于日期的视图提供通用行为的基类。通常没有理由实例化
BaseDateListView
; 实例化一个子类来代替。当这个视图(及其子类)执行时,
self.object_list
将包含该视图正在操作的对象列表,self.date_list
将包含可用数据的日期列表。混入
**方法和属性*
-
allow_empty
¶ 一个布尔值,用于指定是否在没有对象的情况下显示页面。如果这个值为
True
,并且没有可用的对象,视图将显示一个空页面,而不是引发 404。这和
django.views.generic.list.MultipleObjectMixin.allow_empty
是一样的,只是默认值是False
。
-
date_list_period
¶ 可选的 定义
date_list
的聚合周期的字符串。它必须是'year'
(默认)、'month'
或'day'
之一。
-
get_dated_items
()¶ 返回一个包含 (
date_list
,object_list
,extra_context
) 的三元元组。date_list
是可用数据的日期列表。object_list
是对象的列表。extra_context
是上下文数据的字典,它将被添加到由MultipleObjectMixin
提供的任何上下文数据中。
-
get_dated_queryset
(**lookup)¶ 返回使用
lookup
定义的查询参数过滤的查询集。强制执行对查询集的任何限制,如allow_empty
和allow_future
。
-
get_date_list_period
()¶ 返回
date_list
的聚合周期。默认返回date_list_period
。
-
get_date_list
(queryset, date_type=None, ordering='ASC')¶ 返回
date_type
类型的日期列表,其中queryset
包含条目。例如,get_date_list(qs, 'year')
将返回qs
有条目的年份列表。如果没有提供date_type
,则使用get_date_list_period()
的结果。date_type
和ordering
被传递给QuerySet.dates()
。
-