Date-based mixins

注意

这些mixin中的所有日期格式属性都使用strftime()格式字符。不要尝试使用now模板标记中的格式字符,因为它们不兼容。

YearMixin

class YearMixin[source]

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

方法和属性

year_format

解析年份时使用的strftime()格式。默认情况下,这是'%Y'

year

可选年的值,为字符串。默认情况下,设置为None,这意味着年份将使用其他方式确定。

get_year_format()[source]

返回解析年份时要使用的strftime()格式。默认返回year_format

get_year()[source]

返回此视图将以字符串形式显示数据的年份。尝试以下来源,按顺序:

  • YearMixin.year属性的值。
  • 在网址格式中捕获的year参数的值。
  • year GET查询参数的值。

如果找不到有效的年份规格,则提高404。

get_next_year(date)[source]

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

get_previous_year(date)[source]

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

MonthMixin

class MonthMixin[source]

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

方法和属性

month_format

解析月份时使用的strftime()格式。默认情况下,这是'%b'

month

可选月的值,为字符串。默认情况下,设置为None,这意味着将使用其他方式确定月份。

get_month_format()[source]

返回解析月份时要使用的strftime()格式。默认返回month_format

get_month()[source]

返回此视图将以字符串形式显示数据的月份。尝试以下来源,按顺序:

  • MonthMixin.month属性的值。
  • 在网址格式中捕获的month参数的值。
  • month GET查询参数的值。

如果找不到有效的月份规格,则提高404。

get_next_month(date)[source]

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

get_previous_month(date)[source]

返回包含所提供日期前一个月的第一天的日期对象。此函数还可以返回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属性的值。
  • 在网址格式中捕获的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'

week

可选星期的值,为字符串。默认情况下,设置为None,这意味着使用其他方式确定星期。

get_week_format()[source]

返回解析星期时要使用的strftime()格式。默认返回week_format

get_week()[source]

返回此视图将以字符串形式显示数据的星期。尝试以下来源,按顺序:

  • 属性WeekMixin.week的值。
  • 在网址格式中捕获的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的名称,基于日期的归档应该使用它来确定要显示的对象列表在页面上。

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

警告

在这种情况下,如果您已实施每用户时区选择,则相同的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将包含数据可用的日期。

Mixins

方法和属性

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_listobject_listextra_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()