Skip to main content

基于日期的混合

注解

这些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_emptyallow_future 的值。

get_previous_year(date)[源代码]

返回包含所提供日期前一年中第一天的日期对象。此函数还可以返回 None 或引发 Http404 异常,具体取决于 allow_emptyallow_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_emptyallow_future 的值。

get_previous_month(date)[源代码]

返回包含所提供日期前一个月的第一天的日期对象。此函数还可以返回 None 或引发 Http404 异常,具体取决于 allow_emptyallow_future 的值。

DayMixin

class DayMixin[源代码]

可用于检索和提供日期的日期组件的解析信息的mixin。

方法和属性

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_emptyallow_future 的值。

get_previous_day(date)[源代码]

返回包含上一个有效日期的日期对象。此函数还可以返回 None 或引发 Http404 异常,具体取决于 allow_emptyallow_future 的值。

WeekMixin

class WeekMixin[源代码]

可用于检索和提供日期的周组件的解析信息的mixin。

方法和属性

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_emptyallow_future 的值。

get_prev_week(date)

返回包含所提供日期前一周的第一天的日期对象。此函数还可以返回 None 或引发 Http404 异常,具体取决于 allow_emptyallow_future 的值。

DateMixin

class DateMixin[源代码]

一个mixin类,为所有基于日期的视图提供公共行为。

方法和属性

date_field

QuerySet 模型中的 DateFieldDateTimeField 的名称,基于日期的归档应使用该名称来确定要在页面上显示的对象的列表。

当启用 时区支持 并且 date_fieldDateTimeField 时,假定日期位于当前时区。否则,查询集可以包括来自最终用户的时区中的前一天或次日的对象。

警告

在这种情况下,如果您已实施每用户时区选择,则相同的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_listobject_listextra_context)的3元组。

date_list 是数据可用的日期列表。 object_list 是对象的列表。 extra_context 是将被添加到由 MultipleObjectMixin 提供的任何上下文数据的上下文数据的字典。

get_dated_queryset(**lookup)[源代码]

返回一个查询集,使用由 lookup 定义的查询参数进行过滤。强制执行对查询集的任何限制,例如 allow_emptyallow_future

get_date_list_period()[源代码]

返回 date_list 的聚合周期。默认返回 date_list_period

get_date_list(queryset, date_type=None, ordering='ASC')[源代码]

返回 queryset 类型包含条目的 date_type 类型的日期列表。例如,get_date_list(qs, 'year') 将返回 qs 具有条目的年份列表。如果不提供 date_type,则使用 get_date_list_period() 的结果。 date_typeordering 简单地传递到 QuerySet.dates()