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