基於日期的 Mixins

注意

這些 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''%V' (ISO 8601 週)。

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 將包含可用資料的日期列表。

混入 (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) 的 3 元組。

date_list 是可使用資料的日期列表。object_list 是物件列表。extra_context 是一個上下文資料字典,將會被添加到 MultipleObjectMixin 提供的任何上下文資料中。

get_dated_queryset(**lookup)[原始碼]

傳回一個 queryset,使用 lookup 定義的查詢參數進行篩選。強制執行對 queryset 的任何限制,例如 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()

返回頂部