基于日期的 mixins — Django 文档
基于日期的混入
YearMixin
- class YearMixin
一个可用于检索和提供日期的年份成分解析信息的混入。
方法和属性
- 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
一个可用于检索并提供日期中月份成分的解析信息的混入。
方法和属性
- 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
一个可用于检索并提供日期中的日期成分的解析信息的混入。
方法和属性
- day_format
解析日期时使用的
strftime()
格式。 默认情况下,这是'%d'
。
- day
可选 一天的值,作为字符串。 默认情况下,设置为
None
,这意味着将通过其他方式确定日期。
- get_day_format()
返回解析日期时使用的
strftime()
格式。 默认返回 day_format。
- get_day()
以字符串形式返回此视图将显示数据的日期。 按顺序尝试以下来源:
DayMixin.day 属性的值。
在 URL 模式中捕获的
day
参数的值。day
GET
查询参数的值。
如果找不到有效的日期规格,则引发 404。
- get_next_day(date)
返回包含提供的日期之后的下一个有效日期的日期对象。 此函数还可以返回
None
或引发 Http404 异常,具体取决于 allow_empty 和 allow_future 的值。
- get_previous_day(date)
返回包含前一个有效日期的日期对象。 此函数还可以返回
None
或引发 Http404 异常,具体取决于 allow_empty 和 allow_future 的值。
WeekMixin
- class WeekMixin
一个可用于检索和提供日期的周成分的解析信息的混入。
方法和属性
- week_format
解析星期时使用的
strftime()
格式。 默认情况下,这是'%U'
,这意味着一周从星期日开始。 如果您的一周从星期一开始,请将其设置为'%W'
。
- week
可选 周的值,作为字符串。 默认情况下,设置为
None
,这意味着将使用其他方式确定星期。
- get_week_format()
返回解析星期时使用的
strftime()
格式。 默认返回 week_format。
- get_week()
以字符串形式返回此视图将显示数据的周。 按顺序尝试以下来源:
WeekMixin.week 属性的值。
URL 模式中捕获的
week
参数的值week
GET
查询参数的值。
如果找不到有效的周数规格,则引发 404。
- get_next_week(date)
返回一个日期对象,其中包含提供的日期之后的一周的第一天。 此函数还可以返回
None
或引发 Http404 异常,具体取决于 allow_empty 和 allow_future 的值。
- get_prev_week(date)
返回一个日期对象,该对象包含所提供日期之前一周的第一天。 此函数还可以返回
None
或引发 Http404 异常,具体取决于 allow_empty 和 allow_future 的值。
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()
判断该页面是否包含“future”对象,其中“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
) 的 3 元组。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()。