Generic date ビューLink to this heading
日付ベースの汎用ビュー (django.views.generic.dates 内で提供されています) は、日付ベースのデータのために、ドリルダウンページを描画するためのビューです。
ArchiveIndexViewLink to this heading
- class ArchiveIndexViewLink to this definition
"最新の"オブジェクトを、日付によって表示するトップレベルのインデックスページです。
allow_futureをTrueにセットしない限り、未来 の日付のオブジェクトは含まれません。継承元 (MRO)
コンテキスト
(
django.views.generic.dates.BaseDateListViewを通じた)django.views.generic.list.MultipleObjectMixinによって提供されたコンテキストに加えて、テンプレートのコンテキストは以下のようになります:date_list:querysetに従ってオブジェクトを利用可能にするすべての年を含むQuerySetオブジェクトです。datetime.datetimeオブジェクトとして表され、降順で表示されます。
ノート
デフォルトの
最新のcontext_object_nameを使います。デフォルトの
_archiveのtemplate_name_suffixを使います。年によって
date_listを提供する動作がデフォルトですが、date_list_period属性を用いた月や日に変更できます。これは、すべてのサブクラスのビューに適用されます。
例 myapp/urls.py:
from django.urls import path from django.views.generic.dates import ArchiveIndexView from myapp.models import Article urlpatterns = [ path('archive/', ArchiveIndexView.as_view(model=Article, date_field="pub_date"), name="article_archive"), ]例 myapp/article_archive.html:
<ul> {% for article in latest %} <li>{{ article.pub_date }}: {{ article.title }}</li> {% endfor %} </ul>これは、すべての記事 (article) を出力します。
YearArchiveViewLink to this heading
- class YearArchiveViewLink to this definition
与えられた年の中で有効な月を表示する、年次のアーカイブページです。
allow_futureをTrueにセットしない限り、未来 の日付を伴うオブジェクトは表示されません。継承元 (MRO)
- make_object_listLink to this definition
A boolean specifying whether to retrieve the full list of objects for this year and pass those to the template. If
True, the list of objects will be made available to the context. IfFalse, theNonequeryset will be used as the object list. By default, this isFalse.
- get_make_object_list()Link to this definition
Determine if an object list will be returned as part of the context. Returns
make_object_listby default.
コンテキスト
(
django.views.generic.dates.BaseDateListViewを通じた)django.views.generic.list.MultipleObjectMixinによって提供されたコンテキストに加えて、テンプレートのコンテキストは以下のようになります:date_list: AQuerySetobject containing all months that have objects available according toqueryset, represented asdatetime.datetimeobjects, in ascending order.year: Adateobject representing the given year.next_year: Adateobject representing the first day of the next year, according toallow_emptyandallow_future.previous_year: Adateobject representing the first day of the previous year, according toallow_emptyandallow_future.
ノート
Uses a default
template_name_suffixof_archive_year.
Example myapp/views.py:
from django.views.generic.dates import YearArchiveView from myapp.models import Article class ArticleYearArchiveView(YearArchiveView): queryset = Article.objects.all() date_field = "pub_date" make_object_list = True allow_future = True例 myapp/urls.py:
from django.urls import path from myapp.views import ArticleYearArchiveView urlpatterns = [ path('<int:year>/', ArticleYearArchiveView.as_view(), name="article_year_archive"), ]Example myapp/article_archive_year.html:
<ul> {% for date in date_list %} <li>{{ date|date }}</li> {% endfor %} </ul> <div> <h1>All Articles for {{ year|date:"Y" }}</h1> {% for obj in object_list %} <p> {{ obj.title }} - {{ obj.pub_date|date:"F j, Y" }} </p> {% endfor %} </div>
MonthArchiveViewLink to this heading
- class MonthArchiveViewLink to this definition
与えられた月の中で有効な全オブジェクトを表示する、月次のアーカイブページです。
allow_futureをTrueにセットしない限り、未来 の日付を伴うオブジェクトは表示されません。継承元 (MRO)
コンテキスト
In addition to the context provided by
MultipleObjectMixin(viaBaseDateListView), the template's context will be:date_list: AQuerySetobject containing all days that have objects available in the given month, according toqueryset, represented asdatetime.datetimeobjects, in ascending order.month: Adateobject representing the given month.next_month: Adateobject representing the first day of the next month, according toallow_emptyandallow_future.previous_month: Adateobject representing the first day of the previous month, according toallow_emptyandallow_future.
ノート
Uses a default
template_name_suffixof_archive_month.
Example myapp/views.py:
from django.views.generic.dates import MonthArchiveView from myapp.models import Article class ArticleMonthArchiveView(MonthArchiveView): queryset = Article.objects.all() date_field = "pub_date" allow_future = True例 myapp/urls.py:
from django.urls import path from myapp.views import ArticleMonthArchiveView urlpatterns = [ # Example: /2012/08/ path('<int:year>/<int:month>/', ArticleMonthArchiveView.as_view(month_format='%m'), name="archive_month_numeric"), # Example: /2012/aug/ path('<int:year>/<str:month>/', ArticleMonthArchiveView.as_view(), name="archive_month"), ]Example myapp/article_archive_month.html:
<ul> {% for article in object_list %} <li>{{ article.pub_date|date:"F j, Y" }}: {{ article.title }}</li> {% endfor %} </ul> <p> {% if previous_month %} Previous Month: {{ previous_month|date:"F Y" }} {% endif %} {% if next_month %} Next Month: {{ next_month|date:"F Y" }} {% endif %} </p>
WeekArchiveViewLink to this heading
- class WeekArchiveViewLink to this definition
与えられた週の中で有効な全オブジェクトを表示する、週次のアーカイブページです。
allow_futureをTrueにセットしない限り、未来 の日付を伴うオブジェクトは表示されません。継承元 (MRO)
コンテキスト
In addition to the context provided by
MultipleObjectMixin(viaBaseDateListView), the template's context will be:week: Adateobject representing the first day of the given week.next_week: Adateobject representing the first day of the next week, according toallow_emptyandallow_future.previous_week: Adateobject representing the first day of the previous week, according toallow_emptyandallow_future.
ノート
Uses a default
template_name_suffixof_archive_week.The
week_formatattribute is astrptime()format string used to parse the week number. The following values are supported:'%U': Based on the United States week system where the week begins on Sunday. This is the default value.'%W': Similar to'%U', except it assumes that the week begins on Monday. This is not the same as the ISO 8601 week number.'%V': ISO 8601 week number where the week begins on Monday.
Example myapp/views.py:
from django.views.generic.dates import WeekArchiveView from myapp.models import Article class ArticleWeekArchiveView(WeekArchiveView): queryset = Article.objects.all() date_field = "pub_date" week_format = "%W" allow_future = True例 myapp/urls.py:
from django.urls import path from myapp.views import ArticleWeekArchiveView urlpatterns = [ # Example: /2012/week/23/ path('<int:year>/week/<int:week>/', ArticleWeekArchiveView.as_view(), name="archive_week"), ]Example myapp/article_archive_week.html:
<h1>Week {{ week|date:'W' }}</h1> <ul> {% for article in object_list %} <li>{{ article.pub_date|date:"F j, Y" }}: {{ article.title }}</li> {% endfor %} </ul> <p> {% if previous_week %} Previous Week: {{ previous_week|date:"W" }} of year {{ previous_week|date:"Y" }} {% endif %} {% if previous_week and next_week %}--{% endif %} {% if next_week %} Next week: {{ next_week|date:"W" }} of year {{ next_week|date:"Y" }} {% endif %} </p>In this example, you are outputting the week number. Keep in mind that week numbers computed by the
datetemplate filter with the'W'format character are not always the same as those computed bystrftime()andstrptime()with the'%W'format string. For year 2015, for example, week numbers output bydateare higher by one compared to those output bystrftime(). There isn't an equivalent for the'%U'strftime()format string indate. Therefore, you should avoid usingdateto generate URLs forWeekArchiveView.
DayArchiveViewLink to this heading
- class DayArchiveViewLink to this definition
与えられた日の中で有効な全オブジェクトを表示する、日次のアーカイブページです。
allow_futureをTrueにセットしない限り、未来の日付に対するオブジェクトがするかどうかにかかわらず、未来の日付は 404 エラーを返します。継承元 (MRO)
コンテキスト
In addition to the context provided by
MultipleObjectMixin(viaBaseDateListView), the template's context will be:day: Adateobject representing the given day.next_day: Adateobject representing the next day, according toallow_emptyandallow_future.previous_day: Adateobject representing the previous day, according toallow_emptyandallow_future.next_month: Adateobject representing the first day of the next month, according toallow_emptyandallow_future.previous_month: Adateobject representing the first day of the previous month, according toallow_emptyandallow_future.
ノート
Uses a default
template_name_suffixof_archive_day.
Example myapp/views.py:
from django.views.generic.dates import DayArchiveView from myapp.models import Article class ArticleDayArchiveView(DayArchiveView): queryset = Article.objects.all() date_field = "pub_date" allow_future = True例 myapp/urls.py:
from django.urls import path from myapp.views import ArticleDayArchiveView urlpatterns = [ # Example: /2012/nov/10/ path('<int:year>/<str:month>/<int:day>/', ArticleDayArchiveView.as_view(), name="archive_day"), ]Example myapp/article_archive_day.html:
<h1>{{ day }}</h1> <ul> {% for article in object_list %} <li>{{ article.pub_date|date:"F j, Y" }}: {{ article.title }}</li> {% endfor %} </ul> <p> {% if previous_day %} Previous Day: {{ previous_day }} {% endif %} {% if previous_day and next_day %}--{% endif %} {% if next_day %} Next Day: {{ next_day }} {% endif %} </p>
TodayArchiveViewLink to this heading
- class TodayArchiveViewLink to this definition
今日 の全てのオブジェクトを表示する、日時のアーカイブページです。
年/月/日引数の代わりに今日の日付が使われること以外は、django.views.generic.dates.DayArchiveViewとまったく同じです。継承元 (MRO)
ノート
Uses a default
template_name_suffixof_archive_today.
Example myapp/views.py:
from django.views.generic.dates import TodayArchiveView from myapp.models import Article class ArticleTodayArchiveView(TodayArchiveView): queryset = Article.objects.all() date_field = "pub_date" allow_future = True例 myapp/urls.py:
from django.urls import path from myapp.views import ArticleTodayArchiveView urlpatterns = [ path('today/', ArticleTodayArchiveView.as_view(), name="archive_today"), ]
DateDetailViewLink to this heading
- class DateDetailViewLink to this definition
個別のオブジェクトを表示するページです。オブジェクトが未来の日付値を持っている場合、
allow_futureをTrueにセットしない限り、デフォルトでビューは 404 エラーを返します。継承元 (MRO)
コンテキスト
Includes the single object associated with the
modelspecified in theDateDetailView.
ノート
Uses a default
template_name_suffixof_detail.
例 myapp/urls.py:
from django.urls import path from django.views.generic.dates import DateDetailView urlpatterns = [ path('<int:year>/<str:month>/<int:day>/<int:pk>/', DateDetailView.as_view(model=Article, date_field="pub_date"), name="archive_date_detail"), ]Example myapp/article_detail.html:
<h1>{{ object.title }}</h1>