基于日期的 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_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[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_emptyallow_future的值。

get_previous_day(date)[source]

返回一个日期对象,包含前一个有效日。此函数也可能返回None或根据Http404异常,取决于allow_emptyallow_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_emptyallow_future的值。

get_prev_week(date)

返回一个日期对象,包含提供的日期前一周的第一天。此函数也可能返回None或根据Http404异常,取决于allow_emptyallow_future的值。

DateMixin

class DateMixin[source]

一个为所有基于日期的视图提供通用行为的mixin类。

方法和属性

date_field

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

当启用时区支持并且 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_emptyallow_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_typeordering 传递给 QuerySet.dates()

返回顶部