基于日期的混入

    这些混入中的所有日期格式化属性都使用 格式字符,请不要尝试使用 now 模板标签的格式字符,因为它们不兼容。

    class YearMixin

    一个可用于检索和提供日期的年份成分解析信息的混入。

    方法和属性*

    • year_format

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

    • year

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

    • get_year_format()

      返回 在解析年份时使用的格式。默认返回 year_format

    • get_year()

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

      • 属性的值。
      • URL 模式中捕获的 year 参数值。
      • GET 查询 year 参数的值。

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

    • get_next_year(date)

      返回一个日期对象,包含提供的日期后的第一年的第一天。根据 allow_empty 和 的值,该函数也可以返回 None 或引发 Http404 异常。

    • get_previous_year(date)

      返回一个日期对象,包含所提供日期前一年的第一天。根据 和 allow_future 的值,该函数也可以返回 None 或引发 异常。

    MonthMixin

    class MonthMixin

    一个可用于检索并提供日期中月份成分的解析信息的混入。

    **方法和属性*

    • month_format

      格式在解析月份时使用。默认情况下,是 '%b'

    • month

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

    • get_month()

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

      • MonthMixin.month 属性的值。
      • URL 模式中捕获的 month 参数值。
      • GET 查询 month 参数的值。

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

    • get_next_month(date)

      返回一个日期对象,包含提供的日期后的第一个月的第一天。根据 和 allow_future 的值,该函数也可以返回 None 或引发 异常。

    • get_previous_month(date)

    class DayMixin

    一个可用于检索并提供日期中的日期成分的解析信息的混入。

    **方法和属性*

    • day_format

      格式,在解析日期时使用。默认情况下,是 '%d'

    • day

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

    • get_day_format()

      返回 strftime() 格式,用于解析当天的情况。默认返回 。

    • get_day()

      返回此视图将显示数据的日期,为一个字符串。按顺序尝试以下来源:

      • DayMixin.day 属性的值。
      • URL 模式中捕获的 day 参数值。
      • GET 查询 day 参数的值。

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

    • get_next_day(date)

      返回一个日期对象,包含提供的日期后的下一个有效日期。根据 和 allow_future 的值,该函数也可以返回 None 或引发 异常。

    • get_previous_day(date)

      返回一个包含前一天有效日期的日期对象。根据 allow_empty 和 的值,该函数也可以返回 None 或引发 Http404 异常。

    WeekMixin

    class WeekMixin

    一个可用于检索和提供日期的周成分的解析信息的混入。

    方法和属性*

    • week_format

      The strftime() format to use when parsing the week. By default, this is '%U', which means the week starts on Sunday. Set it to '%W' or '%V' (ISO 8601 week) if your week starts on Monday.

      New in Django Development version:

      Support for the '%V' week format was added.

    • week

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

    • get_week()

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

      • 属性的值。
      • URL 模式中捕获的 week 参数值。
      • GET 查询 week 参数的值。

      如果找不到有效的周数规格,则引发 404。

    • get_next_week(date)

      返回一个日期对象,包含提供的日期后的一周第一天。根据 allow_empty 和 的值,该函数也可以返回 None 或引发 Http404 异常。

    • 返回一个日期对象,包含提供的日期前一周的第一天。根据 和 allow_future 的值,该函数也可以返回 None 或引发 异常。

    class

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

    **方法和属性*

    • 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 中指定的字段大于当前日期/时间的对象。默认返回 。

    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) 的三元元组。

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

    • get_dated_queryset(\*lookup*)

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

    • get_date_list_period()

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