基于日期的混合

备注

这些混合函数中的所有日期格式属性都使用 strftime() 设置字符格式。不要尝试使用 now 模板标记不兼容。

YearMixin

class YearMixin[源代码]

可用于检索和提供日期的年份组件的分析信息的混合。

方法和属性

year_format

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

year

可选的 作为字符串的年份值。默认情况下,设置为 None 也就是说,年份将用其他方法确定。

get_year_format()[源代码]

返回 strftime() 分析年份时使用的格式。退换商品 year_format 默认情况下。

get_year()[源代码]

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

  • 的值 YearMixin.year 属性。

  • 的值 year 在URL模式中捕获的参数。

  • 的值 year GET 查询参数。

如果找不到有效的年份规范,则引发404。

get_next_year(date)[源代码]

返回一个日期对象,该对象包含提供日期之后一年中的第一天。此函数还可以返回 None 或提高 Http404 异常,取决于 allow_emptyallow_future .

get_previous_year(date)[源代码]

返回一个日期对象,该对象包含一年中提供日期之前的第一天。此函数还可以返回 None 或提高 Http404 异常,取决于 allow_emptyallow_future .

MonthMixin

class MonthMixin[源代码]

可用于检索和提供日期的月份组件的分析信息的混合。

方法和属性

month_format

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

month

可选的 作为字符串的月份值。默认情况下,设置为 None 也就是说,月份将用其他方法确定。

get_month_format()[源代码]

返回 strftime() 分析月份时使用的格式。退换商品 month_format 默认情况下。

get_month()[源代码]

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

  • 的值 MonthMixin.month 属性。

  • 的值 month 在URL模式中捕获的参数。

  • 的值 month GET 查询参数。

如果找不到有效的月份规范,则引发404。

get_next_month(date)[源代码]

返回一个日期对象,该对象包含所提供日期后一个月的第一天。此函数还可以返回 None 或提高 Http404 异常,取决于 allow_emptyallow_future .

get_previous_month(date)[源代码]

返回一个日期对象,该对象包含提供日期前一个月的第一天。此函数还可以返回 None 或提高 Http404 异常,取决于 allow_emptyallow_future .

DayMixin

class DayMixin[源代码]

一种混音器,可用于检索和提供日期的一天组件的解析信息。

方法和属性

day_format

这个 strftime() 分析日期时使用的格式。默认情况下,这是 '%d' .

day

可选的 作为字符串的日期值。默认情况下,设置为 None 也就是说,这一天将使用其他方法来确定。

get_day_format()[源代码]

返回 strftime() 分析日期时使用的格式。退换商品 day_format 默认情况下。

get_day()[源代码]

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

  • 的值 DayMixin.day 属性。

  • 的值 day 在URL模式中捕获的参数。

  • 的值 day GET 查询参数。

如果找不到有效的日期规范,则引发404。

get_next_day(date)[源代码]

返回一个日期对象,该对象包含所提供日期之后的下一个有效日期。此函数还可以返回 None 或提高 Http404 异常,取决于 allow_emptyallow_future .

get_previous_day(date)[源代码]

返回包含前一个有效日期的日期对象。此函数还可以返回 None 或提高 Http404 异常,取决于 allow_emptyallow_future .

WeekMixin

class WeekMixin[源代码]

一种混音器,可用于检索和提供日期的一周组件的解析信息。

方法和属性

week_format

这个 strftime() 分析周时使用的格式。默认情况下,这是 '%U' 也就是说一周从星期天开始。设置为 '%W''%V' (ISO 8601周)如果您的一周从周一开始。

week

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

get_week_format()[源代码]

返回 strftime() 分析周时使用的格式。退换商品 week_format 默认情况下。

get_week()[源代码]

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

  • 的值 WeekMixin.week 属性。

  • 的值 week 在URL模式中捕获的参数

  • 的值 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

的名字 DateFieldDateTimeFieldQuerySet 基于日期的存档应用于确定要在页面上显示的对象列表的模型。

什么时候? time zone support 启用和 date_field 是一个 DateTimeField ,日期假定在当前时区中。否则,查询集可以在最终用户的时区中包含前一天或第二天的对象。

警告

在这种情况下,如果已经实现了每个用户的时区选择,则同一个URL可能会显示一组不同的对象,具体取决于最终用户的时区。为了避免这种情况,您应该使用 DateField 作为 date_field 属性。

allow_future

一个布尔值,指定是否在此页上包含“future”对象,其中“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 将包含可用数据的日期列表。

Mixins

方法和属性

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

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')[源代码]

返回类型的日期列表 date_type 为此 queryset 包含项。例如, get_date_list(qs, 'year') 将返回以下年份的列表: qs 有条目。如果 date_type 未提供,结果为 get_date_list_period() 使用。 date_typeordering 被传递给 QuerySet.dates() .