revision-up-to: | 17812 (1.4) |
---|
リリースノートを参照してください
Note
Django 1.3 の前は、汎用ビューは関数として実装されていました。ここで述べる クラスベース汎用ビューが採用されたので、関数ベース汎用ビューは廃止されま した。
Web アプリケーションの作成は、同じパターンを何度も何度も繰り返し書くことに なるため、退屈なものです。 Django は、こうした単調作業をモデルやテンプレー トのレイヤで軽減しようとしていますが、 Web 開発者はビューレベルでも退屈さを 感じています。
クラスベース汎用ビューの概略は トピックガイド を参照してください。
このリファレンスでは Django 組み込みの汎用ビューの詳細を記述しています。
それぞれのビューが期待するキーワード引数についても記述しています。
それらの引数は URL パターンか、付加情報である extra_context
辞書のどちらかから得られると
覚えておいてください。
多くの汎用ビューは QuerySet
のインスタンスである queryset
キーを要求します。
QuerySet
オブジェクトについては クエリを生成する を参照してください。
Mixin クラスは、クラスの機能継承のために使われます。小分けにした振る舞い (behavior) からクラスを構成します。 Django のクラスベース汎用ビューは、適切な汎用ビューに Mixin を組み合わせて構築します。
例えば DetailView
を構成しているのは
以下になります。
View
、クラスベースの振る舞いを決める
基本を提供します。SingleObjectMixin
、単一のオブジェクトを
取得して表示するユーティリティを提供します。SingleObjectTemplateResponseMixin
、
単一のオブジェクトを、テンプレートベースのレスポンスで表現するためのツールを提供します。組み合せることにより、以上の Mixin が目的のビューに必要な要素をすべて提供します。 このビューが返すレスポンスは、単一オブジェクトによりテンプレートをレンダリングしたものです。
Django はたくさんの Mixin を提供しています。自分での汎用ビューを作りたいときは、 それら Mixin を面白い方法で組み合わせてクラスを作りましょう。もしくは Django が提供する、すでにミックスされた (pre-mixied) 汎用ビュー を使うだけでも 良いでしょう。
Note
ビューのドキュメントに Mixin のリストが書かれているときは、そのビューが Mixin から全てのプロパティ、メソッドを受け継いでいるということです。
TemplateResponseMixin
¶template_name
¶対象ビューのレンダリングに使われるテンプレートのパスになります。
response_class
¶これはレスポンス用のクラスで render_to_response
メソッドにより返されます。
デフォルトは
TemplateResponse
です。
TemplateResponse
インスタンスのテンプレートとコンテキストについては
後の TemplateResponse
で後述します。
もしテンプレートの読み込みやコンテキストオブジェクトをカスタムしたい
なら、 TemplateResponse
をサブプラス化して、それを
response_class
に指定してください。
render_to_response
(context, **response_kwargs)¶self.response_class
のインスタンスを返します。
キーワード引数が 1 つも与えられない場合は、レスポンスクラスのコンストラクタ を返します。
テンプレートを見つけるために
get_template_names()
が呼び出されます。
これによってテンプレート名のリストが取得されます。
get_template_names
()¶テンプレート名のリストを返します。テンプレートレンダリング時の検索に 使われます。
TemplateResponseMixin.template_name
が指定されている場合、
デフォルトのままでは TemplateResponseMixin.template_name
を含むリストが返されます。 (それが指定されている場合は)
SingleObjectMixin
¶model
¶ビューがデータを表示するモデルです。 model = Foo
と指定すると、
queryset = Foo.objects.all()
と同じ意味になります。
queryset
¶QuerySet
はオブジェクトを表現します。与えられた場合は
SingleObjectMixin.queryset
の値が SingleObjectMixin.model
に与えられた値に置き換わります。
slug_url_kwarg
¶リリースノートを参照してください
URLConf キーワード引数からのスラグ名です。デフォルトで
slug_url_kwarg
は 'slug'
です。
pk_url_kwarg
¶リリースノートを参照してください
URLConf キーワード引数からプライマリキー名です。デフォルトで
pk_url_kwarg
は 'pk'
です。
context_object_name
¶コンテキストで使う変数名を指定します。
get_object
(queryset=None)¶ビューで表示される単一のオブジェクトを返します。 queryset
が
与えられた場合は、このクエリセットからオブジェクトが取得されます。
そうでなければ get_queryset()
が使われます。
get_object()
は SingleObjectMixin.pk_url_kwarg
引数を
ビューへの引数から探します。もし見つかった場合は、メソッドはプライマリ
キーの値を使って探します。見つからない場合は、
SingleObjectMixin.slug_url_kwarg
引数が探され、
SingleObjectMixin.slug_field
からスラグを探します。
get_queryset
()¶クエリセットを返します。このクエリセットからオブジェクトが取得され、
ビューにより表示されます。デフォルトで
get_queryset()
は
queryset
が設定されていると、これを返します。
そうでない場合、 model
引数のデフォルト
マネジャから all() メソッドを呼び出して QuerySet
を生成
します。
get_context_object_name
(obj)¶このビューが扱うデータを含む、コンテキストの変数名を返します。
context_object_name
が設定されていない場合、
コンテキスト名はクエリセットを構成するモデルの object_name
から
生成されます。例えば Article
モデルの場合は article
という名の
コンテキストオブジェクトになります。
get_context_data
(**kwargs)¶オブジェクトのリストを表示するための、コンテキストデータを返します。
コンテキスト
object
: このビューが表示するオブジェクトです。 context_object_name
が指定させれている場合、この変数はコンテキストに object
と同じ値で設定されます。SingleObjectTemplateResponseMixin
¶テンプレートベースのレスポンスをレンダリングする Mixin クラスです。単一
のオブジェクトインスタンスを扱うビューに使われます。ミックスされたビューは
self.object
の提供が必要になります。このオブジェクトインスタンスは
ビューが扱うものです。 self.object
はいつも Django のモデルになるでし
ょう。しかし必須ではなく、 None
のこともあります。ビューが新しい
インスタンスを構成している段階ではそうなります。
拡張点
template_name_field
¶現在のオブジェクトインスタンスのフィールド名で、候補になるテンプレート名
を特定するために使われます。 template_name_field
か、現在の
オブジェクトインスタンスの template_name_field
の値が None
の
場合は、オブジェクトはテンプレート名の特定に問い合わされることはなく
なります。
template_name_suffix
¶自動生成されるテンプレート名の候補のために追加されるサフィックスになり
ます。デフォルトのサフィックスは _detail
です。
get_template_names
()¶テンプレート名の候補をリストで返します。以下のようなリストを返します:
template_name
の値 (与えられている場合)template_name_field
フィールドの値。
このオブジェクトインスタンスはビューが扱っているものです。 (取得できる
場合)<app_label>/<object_name><template_name_suffix>.html
MultipleObjectMixin
¶オブジェクトのリストを表示するために使われる Mixin です。
paginate_by
が指定されている場合、 Django はこれに返される結果をページ
分割 (paginate) します。 URL からページ番号を特定するには 2 つの方法が
あります。
URLConf で page
パラメータを使います。例えば URLConf はこのように
なります:
(r'^objects/page(?P<page>[0-9]+)/$', PaginatedView.as_view())
ページ番号を page
クエリ文字列パラメータで渡します。例えば URL Conf
はこのようになります:
/objects/?page=3
これらの値とリストは 1 オリジンであり、 0 オリジンではありません。最初の
ページは 1
で表されます。
ページ分割 (pagination) に関する詳細は、 ページ分割のドキュメント を読んでください。
特殊なケースとして、 page
には last
という値も認められています:
/objects/?page=last
これで最後のページにアクセスすることができます。結果が何ページあるのか を決めること無くアクセスできます。
page
は 必ず ページ番号か last
でなけれならないことに注意して
ください。 page
がその他の値の場合は 404 エラーが返されます。
allow_empty
¶利用できるオブジェクトがない場合にページを表示するかどうかをブール値に
よって指定します。これが False
で、利用できるオブジェクトがない場合、
空白のページを表示する代わりに、ビューは 404 を送出します。デフォルト
では True
です。
model
¶ビューがデータを表示するためのモデルになります。 model=Foo
と指定
することは、 queryset = Foo.objects.all()
と同じ意味になります。
queryset
¶オブジェクトを表す QuerySet
になります。与えられた場合、
MultipleObjectMixin.queryset
は MultipleObjectMixin.model
で与えられた値を置き換えます。
paginate_by
¶1 ページあたりのオブジェクトの表示数を指定する整数になります。与えられた
場合、ビューは 1 ページあたり MultipleObjectMixin.paginate_by
オブジェクトでオブジェクトをページ分割します。ビューは (GET
からの)
page
クエリ文字列パラメータか、 URLConf で指定される page
変数
に期待します。
paginator_class
¶ページネータクラスはページ分割に使われます。デフォルトでは
django.core.paginator.Paginator
が使われます。カスタムの
ページネータが、 django.core.paginator.Paginator
と同じ
コンストラクタインタフェースを持っていない場合は、
MultipleObjectMixin.get_paginator()
も提供する必要があります。
context_object_name
¶コンテクストで使われる変数名を指定します。
get_queryset
()¶ビューが表示するデータを表すクエリセットを返します。
paginate_queryset
(queryset, page_size)¶4 要素のタプル (paginator
, page
, object_list
,
is_paginated
) を返します。
1 ページあたりのサイズ page_size
で、 queryset
をページ分割する
よう構成します。リクエストが page
引数を含んでいる場合や、 URL 引数、
GET 引数として取得できた場合は、 object_list
は、そのページにある
べきオブジェクトになります。
get_paginate_by
(queryset)¶ページ分割される際のアイテム数を返します。ページ分割されない場合は
None
を返します。デフォルトでは単純に
MultipleObjectMixin.paginate_by
の値を返します。
get_paginator
(queryset, per_page, orphans=0, allow_empty_first_page=True)¶ビューで使用されるページネータのインスタンスを返します。デフォルトでは
paginator_class
のインスタンスになります。
get_allow_empty
()¶利用できるオブジェクトがない場合にページを表示するかどうかを指定する
ブール値を返します。このメソッドが False
を返して、オブジェクトが
利用できない場合、空白のページを表示する代わりに、ビューは 404 を送出
します。デフォルトでは True
です。
get_context_object_name
(object_list)¶ビューが扱うデータのリストを含むコンテキスト変数の名前を返します。
object_list
が Django オブジェクトのクエリセットで、
context_object_name
が設定されていない
場合、コンテキスト名にはクエリセットに含まれるモデルの object_name
に 'list'
サフィックスを追加したものが使われます。モデル Article
はコンテキストオブジェクト名 article_list
を持ちます。
get_context_data
(**kwargs)¶表示されるオブジェクトのリストを含むコンテキストデータを返します。
コンテキスト
object_list
: ビューが表示させるオブジェクトのリストです。
context_object_name
が指定されている場合、この変数の値でもコンテキスト
に設定されます。値は object_list
と同じになります。is_paginated
: 結果がページ分割されるかどうかを表現するブール値になり
ます。とりわけ、これが False
になるのは、ページサイズが指定されて
いない場合と、取得したオブジェクトが複数ページに分割できない場合です。paginator
: django.core.paginator.Paginator
のインスタンスになり
ます。ページが分割されていない場合、このコンテキスト変数は None
になり
ます。page_obj
: django.core.paginator.Page
のインスタンスになり
ます。ページが分割されていない場合、このコンテキスト変数は None
になり
ます。MultipleObjectTemplateResponseMixin
¶ビューが扱うオブジェクトのリストを、テンプレートベースのレスポンスにレンダリ
ングするMixin クラスです。ミックスされるビューは self.object_list
を提供
する必要があり、オブジェクトインスタンスのリストはビュー内で操作される必要が
あります。 self.object_list
は、必須ではありませんが、
QuerySet
になります。
Extends
template_name_suffix
¶このサフィックスは自動生成されるテンプレート名の候補に付与されます。
デフォルトのサフィックスは _list
です。
get_template_names
()¶テンプレート名の候補を返します。以下のようになります:
template_name
の値 (与えられている場合)<app_label>/<object_name><template_name_suffix>.html
FormMixin
¶フォームを作成、表示する機能を提供する Mixin クラスです。
initial
¶フォームの初期データを含む辞書です。
form_class
¶インスタンス化するためのフォームクラスです。
success_url
¶フォームが正常に動作した後のリダイレクト先 URL です。
Changed in 1.4
Django 1.3 では、このメソッドは initial
クラス変数そのものを
返していました。
get_form_class
()¶インスタンス化するためのフォームクラスを取得します。デフォルトでは
form_class
です。
get_form
(form_class)¶get_form_kwargs()
を使って form_class
のインスタンスを返し
ます。
get_form_kwargs
()¶フォームをインスタンス化するために必要なキーワード引数を構築します。
initial
引数には get_initial()
が設定されます。リクエストが
POST
か PUT
の場合は、リクエストデータ (request.POST
と
request.FILES
) が提供されるでしょう。
get_success_url
()¶フォームが正常に動作した後のリダイレクト先 URL を決定します。デフォルト
では success_url
を返します。
form_valid
(form)¶get_success_url()
へリダイレクトします。
form_invalid
(form)¶無効な場合のフォームをコンテキストで提供し、レスポンスをレンダリング します。
get_context_data
(**kwargs)¶kwargs
の内容を含むコンテキストを返します。
Context
form
: ビュー用に生成されたフォームインスタンスです。Note
FormMixin
をミックスしたビューは form_valid()
、
form_invalid()
の両機能を提供しなければなりません。
ModelFormMixin
¶ModelForms で動作する フォーム Mixin です。独立したフォームではありません。
これは SingleObjectMixin
のサブクラス
ですので、この Mixin のインスタンスは model
と
queryset
引数にアクセスできます。これによって
ModelForm が扱うオブジェクトの種類を記述できます。ビューは self.object
も
提供します。 self.object
によってインスタンスを扱います。インスタンスが
作られるときは、 self.object
は None
になります。
Mixin
success_url
¶フォームが正常に動作した後のリダイレクト先 URL です。
success_url
は辞書の文字列フォーマットを含みます。オブジェクトの
フィールド引数に対して補間されます。例えば
success_url="/polls/%(slug)s/"
を使って、モデルの slug
フィールドから構成した URL にリダイレクトできます。
get_form_class
()¶インスタンス化のためのフォームクラスを取得します。
FormMixin.form_class
が与えられている場合、そのクラスが使われます。
そうでなければ ModelForm がインスタンス化されます。使われるモデルは
queryset
か model
から予想されます。この場合どちらかの属性が提供されている必要があります。
get_form_kwargs
()¶現在のインスタンス (self.object
) を標準の
FormMixin.get_form_kwargs()
に追加します。
get_success_url
()¶フォームが正当な場合にリダイレクトする URL を返します。
FormMixin.success_url
が与えられた場合は、それを返します。
そうでなければオブジェクトの get_absolute_url()
の使います。
form_valid
(form)¶フォームインスタンスを記録します。ビューに現在のオブジェクトを設定し、
get_success_url()
にリダイレクトします。
form_invalid
()¶無効な場合のフォームをコンテキストとして提供し、レスポンスをレンダリング します。
DeletionMixin
¶DELETE
http アクションの扱いを有効にします。
success_url
¶指定されたオブジェクトが削除された場合にリダイレクトされる URL です。
get_success_url
(obj)¶指定されたオブジェクトがすでに削除されていた場合にリダイレクトする URL
を返します。デフォルトでは
success_url
を返し
ます。
YearMixin
¶ある日付の、年 (year) 要素をパースした情報を取得、提供する Mixin です。
Mixin
year_format
¶年をパースする際に使われる strftime()
フォーマットです。
デフォルトでは '%Y'
です。
year
¶オプション (文字列としての) 年の値です。デフォルトでは None
が
設定されています。この場合、年は他の手段によって決定されます。
get_year_format
()¶年をパースする際に使われる strftime()
フォーマットを返し
ます。デフォルトでは YearMixin.year_format
が返されます。
get_year
()¶ビューが表示するデータ用の年を返します。以下の方法で順に試されます。
YearMixin.year
属性の値妥当な年を特定できなかった場合は 404 が発生します。
MonthMixin
¶ある日の、月に関する要素のパースされた情報を取得、提供するために使われる Mixin です。
month_format
¶月をパースする際に使われる strftime()
フォーマットです。
デフォルトでは '%b'
です。
month
¶オプション (文字列としての) 月の値です。デフォルトでは None
が
設定されています。この場合、月は他の手段によって決定されます。
get_month_format
()¶strftime()
フォーマットを返します。これは月をパースする際に
使われます。デフォルトでは MonthMixin.month_format
が返されます。
get_month
()¶ビューが表示するデータ用の月を返します。以下の方法で順に試されます。
MonthMixin.month
属性の値妥当な月を特定できなかった場合は 404 が発生します。
get_next_month
(date)¶引数で与えられた日付の、翌月の初日を含む日付オブジェクトを返します。
allow_future = False
がビューに設定されており、翌月が未来にある
場合は None
を返します。 allow_empty = False
の場合は、翌月を
データを含んだ状態で返します。
get_prev_month
(date)¶与えられた日付の前月の初日を含む日付オブジェクトを返します。
allow_empty = False
の場合は、データを含んだ前月を返します。
DayMixin
¶日付における日 (day) 要素のためのパースされた情報を取得し、提供する Mixin です。
day_format
¶日をパースする際に使われる strftime()
フォーマットです。
デフォルトでは '%d'
です。
day
¶オプション (文字列としての) 日の値です。デフォルトでは None
が
設定されています。この場合、年は他の手段によって決定されます。
get_day_format
()¶strftime()
フォーマットを返します。これは日をパースする際に
使われます。デフォルトでは DayMixin.day_format
が返されます。
get_day
()¶ビューが表示するデータ用の日を返します。以下の方法で順に試されます。
DayMixin.year
属性の値妥当な日を特定できなかった場合は 404 が発生します。
get_next_day
(date)¶引数で与えられた日付の、次の日を含む日付オブジェクトを返します。
allow_future = False
がビューに設定されており、翌日が未来にある
場合は None
を返します。 allow_empty = False
の場合は、翌日の
データを含んだ状態で返します。
get_prev_day
(date)¶与えられた日付の前日を含む日付オブジェクトを返します。
allow_empty = False
の場合は、データを含んだ前日を返します。
WeekMixin
¶日付における週 (week) 要素のためのパースされた情報を取得し、提供する Mixin です。
week_format
¶週をパースする際に使われる strftime()
フォーマットです。
デフォルトでは '%U'
です。
week
¶オプション (文字列としての) 週の値です。デフォルトでは None
が
設定されています。この場合、週は他の手段によって決定されます。
get_week_format
()¶strftime()
フォーマットを返します。これは週をパースする際に
使われます。デフォルトでは WeekMixin.week_format
が返されます。
get_week
()¶ビューが表示するデータ用の週を返します。以下の方法で順に試されます。
WeekMixin.month
属性の値妥当な週を特定できなかった場合は 404 が発生します。
DateMixin
¶すべての日付ベースビュー (date-based views) のための共通の振る舞いを提供 する Mixin クラスです。
Date_Field
¶QuerySet
内のモデルの DateField
か DateTimeField
の名前
です。このモデルは日付ベースの記事においてオブジェクトのページを決定
するために使われます。
allow_future
¶“未来の (future)” オブジェクトをページ内に含めるかどうかを指定するブール
値です。 “未来” というのは date_filed
で指定されるフィールド内の
オブジェクトが、現在の日付/時刻よりも大きい値を持っているということ
です。デフォルトでは False
です。
get_date_field
()¶ビューが扱う日付データを含むフィールドの名前を返します。デフォルトでは
DateMixin.date_field
です。
get_allow_future
()¶ページに “未来の” オブジェクトを含めるかどうかを決定します。”未来” と
いうのは date_filed
で指定されるフィールド内のオブジェクトが、現在の
日付/時刻よりも大きい値を持っているということです。デフォルトでは
DateMixin.allow_future
が返されます。
BaseDateListView
¶すべての日付ベースビューのための共通の振る舞いを提供する基底クラスです。
通常 BaseDateListView
はインスタンス
化しません。これのサブクラスの 1 つをインスタンス化することになるでしょう。
このビュー (とサブクラス) が実行されている間、 self.object_list
は
オブジェクトのリストを含みます。このオブジェクトのリストはビューが扱うもので
あり、 self.date_list
は日付のリストを含みます。これはどのデータが利用
可能かを表しています。
Mixin
allow_empty
¶利用可能なオブジェクトが無い際に、ページを表示するかどうかを指定する
ブール値です。 True
であり、オブジェクトが利用できない場合、ビュー
は 404 を送出する代わりに空のページを表示します。デフォルトでこれは
False
です。
get_dated_items():
(date_list
, object_list
, extra_context
) を含む 3 要素の
タプルを返します。
date_list
はどのデータが利用可能かを表す日付のリストです。
object_list
はオブジェクトのリストです。 extra_context
は
コンテキストデータの辞書です。これには
MultipleObjectMixin
に提供される
すべてのコンテキストデータが加えられるでしょう。
get_dated_queryset
(**lookup)¶lookup
によって明示されたクエリ引数を使ってフィルタされたクエリ
セットを返します。クエリセットのすべての制限について適応されます。
例えば allow_empty
や allow_future
があります。
View
¶クラスベースビューの大元です。すべてのクラスベース汎用ビューはこの基本クラス を受け継いでいます。
View
にある各リクエストは独自の状態を
持ちます。なので、インスタンスに状態変数 (state variables) を保持しても
安全です (例えば self.foo = 3
はスレッドセーフな (thread-safe) 処理に
なります) 。
クラスベースビューは as_view()
クラスメソッドを用いて URL
パターン内に配置されます:
urlpatterns = patterns('',
(r'^view/$', MyView.as_view(size=42)),
)
as_view()
に渡されるすべての引数は、リクエストを処理する
インスタンスに配置されます。先の例が意味するのは、 MyView
へのすべての
リクエストは self.size
に問い合わせできるということです。
ビューの引数におけるスレッドセーフ
ビューに渡される引数はビューの全インスタンス間で共有されます。これが 意味するのは、リスト、辞書、そしてすべてのオブジェクトをビューに対する 引数として使うべきでないということです。それをした場合、ビューに訪れた あるユーザのアクションが、同じビューに訪れた次のユーザにも影響してしまい ます。
dispatch
(request, *args, **kwargs)¶ビューにおける view
の部分です。 request
を含む引数を受け取り
HTTP レスポンスを返すメソッドです。
デフォルトの機能は、 HTTP メソッドを調べ、 HTTP メソッドに対応するメソッ
ドへ委任します。 GET
は get()
に委任されます。
POST
は post()
、などです。
さらにデフォルトでは request
、 args
と kwargs
をインス
タンスの変数として設定します。なので、ビューのメソッドはリクエストの
詳細を知ることができます。このリクエストはビューを呼び出すのに作られた
ものです。
http_method_not_allowed
(request, *args, **kwargs)¶ビューがサポートしていない HTTP メソッドが呼び出された際は、代わりに このメソッドが呼び出されます。
デフォルトの機能では HttpResponseNotAllowed
が返されます。その際、
許可されてるメソッドのリストをプレーンテキストも同時に返します。
RedirectView
¶与えられた URL にリダイレクトします。
与えられる URL は辞書スタイル (dictionary-style) のフォーマットを含んでいる
でしょう。これは URL からキャプチャしたパラメータを含んでいます。キーワード
補完は (引数が一切渡されなくても) 常に 完了しています。ですので、 URL
内の全 "%"
キャラクタは、 "%%"
として書かれるべきです。そうすれば
Python は出力の際に、それらを単一のパーセント記号として変換します。
与えられた URL が None
の場合は、 Djangoは HttpResponseGone
(410)
を返します。
url
¶リダイレクトされる URL で、文字列です。 None
では 410 (Gone) HTTP
エラーを送出します。
permanent
¶リダイレクトが永続的なものかどうかです。ここで唯一の違いは返される HTTP
ステータスコードです。 True
の場合、リダイレクトは 301 ステータス
コードを使います。 False
の場合、 302 ステータスコードを使います。
デフォルトで permanent
は True
です。
query_string
¶GET クエリ文字列を新しいロケーションに伝えるかどうかを選択します。
True
の場合、クエリ文字列は URL に付加されます。 False
の場合
、クエリ文字列は捨てられます。デフォルトで query_string
は False
です。
get_redirect_url
(**kwargs)¶リダイレクションの対象となる URL を返します。
デフォルトの機能では url
文字列を元に、 %
パラメータで拡張されて使われます。
query_string
に要求された場合は、クエリ文字列の
付加も同様に行われます。
BaseDetailView
¶DetailView
¶個別のオブジェクトを表現するページです。
このビューが実行されている間、 self.object
はビューが操作しているオブ
ジェクトを含みます。
BaseDetailView
は
DetailView
と同じ振る舞いを提供します。
しかし、
SingleObjectTemplateResponseMixin
を含んでいません。
Mixin
BaseListView
¶ListView
¶オブジェクトのリストを表現するページです。
このビューが実行されている間、 self.object_list
はビューが操作している
オブジェクトのリスト (必須ではないですが、常にクエリセット) を含みます。
BaseListView
は
ListView
と同じ振る舞いを提供します。
しかし、
MultipleObjectTemplateResponseMixin
を含んでいません。
Mixin
BaseFormView
¶FormView
¶フォームを表示するビューです。エラーの場合、フォームが検証エラーとともに 再表示されます。成功した場合は新しい URL にリダイレクトされます。
BaseFormView
は
FormView
と同じ振る舞いを提供します。
しかし、
TemplateResponseMixin
を含んでいません。
Mixin
BaseCreateView
¶CreateView
¶オブジェクトを作成するためのフォームを表示するビューです。フォームが検証 エラーとともに再表示されます (何かあった場合) 、そしてオブジェクトが記録 されます
BaseCreateView
は
CreateView
と同じ振る舞いを提供します。
しかし、
TemplateResponseMixin
を含んでいません。
Mixin
BaseUpdateView
¶UpdateView
¶存在するオブジェクトを編集するためのフォームを表示するビューです。フォームが 検証エラーとともに再表示されます (何かあった場合) 、そしてオブジェクトの 変更点が記録されます。これはオブジェクトのモデルクラスの自動生成フォームを 使っています (フォームクラスが手動で指定されていない場合) 。
BaseUpdateView
は
UpdateView
と同じ振る舞いを提供します。
しかし、
TemplateResponseMixin
を含んでいません。
Mixin
BaseDeleteView
¶DeleteView
¶確認用ページを表示し、存在するオブジェクトを削除するビューです。与えられた
オブジェクトはリクエストメソッドが POST
の場合にのみ削除されます。この
ビューが GET
を通じて与えられた場合、確認用ページを表示します。この
ページは同ページに POST するフォームを含みます。
BaseDeleteView
は
DeleteView
と同じ振る舞いを提供します。
しかし、
TemplateResponseMixin
を含んでいません。
Mixin
Notes
'_confirm_delete'
という
template_name_suffix
を使います。日付ベース汎用ビュー (モジュール django.views.generic.dates
にあります)
は日付ベースのデータをドリルダウン (drilldown) ページに表示するビューです。
BaseArchiveIndexView
¶ArchiveIndexView
¶日付における “最新 (latest)” オブジェクトを表示するトップレベルのインデック
スページです。オブジェクトが 未来の 日付にある場合は、 allow_future
を
True
に設定していない限り含まれません。
BaseArchiveIndexView
は
ArchiveIndexView
と同じ振る舞いを提供
します。しかし、
MultipleObjectTemplateResponseMixin
を含んでいません。
Mixin
django.views.generic.dates.BaseDateListView
django.views.generic.list.MultipleObjectTemplateResponseMixin
Notes
context_object_name
は latest
を使います。template_name_suffix
は _archive
を使います。BaseYearArchiveView
¶YearArchiveView
¶与えられた年の特定の月すべてを表示する年単位のアーカイブページを表示します。
未来の 日付のオブジェクトは allow_future
を True
にしない限り表示
されません。
BaseYearArchiveView
は
YearArchiveView
と同じ振る舞いを提供
します。しかし、
MultipleObjectTemplateResponseMixin
を含んでいません。
Mixin
django.views.generic.list.MultipleObjectTemplateResponseMixin
django.views.generic.dates.YearMixin
django.views.generic.dates.BaseDateListView
make_object_list
¶この年のためにオブジェクトの全リストを取得し、テンプレートに渡すかどうか
を指定するブール値です。 True
ならオブジェクトのリストはコンテキスト
で使用できるようになります。デフォルトでは False
です。
get_make_object_list
()¶オブジェクトのリストがコンテキストの一部として返されるかどうか判断します
。 False
の場合、 None
クエリセットがオブジェクトのリストとして
使われます。
コンテキスト
(django.views.generic.dates.BaseDateListView
経由で)
django.views.generic.list.MultipleObjectMixin
に提供されるコン
テキストに加えて、テンプレートコンテキストは以下のようなものがあります:
date_list
: queryset
内で有効なオブジェクトを持つすべての月を含む
DateQuerySet
オブジェクトです。 datetime.datetime
オブジェクト
として昇順に表現されます。year
: 与えられた年です。4 キャラクター文字列です。Notes
template_name_suffix
は _archive_year
が使われます。BaseMonthArchiveView
¶MonthArchiveView
¶与えられた月すべてのオブジェクトを表示する月単位のアーカイブページを表示
します。未来の 日付のオブジェクトは allow_future
を True
にしない
限り表示されません。
BaseMonthArchiveView
は
MonthArchiveView
と同じ振る舞いを提供
します。しかし、
MultipleObjectTemplateResponseMixin
を含んでいません。
Mixin
django.views.generic.list.MultipleObjectTemplateResponseMixin
django.views.generic.dates.YearMixin
django.views.generic.dates.MonthMixin
django.views.generic.dates.BaseDateListView
コンテキスト
(django.views.generic.dates.BaseDateListView
経由で)
django.views.generic.list.MultipleObjectMixin
に提供されるコン
テキストに加えて、テンプレートコンテキストは以下のようなものがあります:
date_list
: 与えられた月の有効なオブジェクトを持つ、すべての日を含む
DateQuerySet
オブジェクトです。 queryset
に一致しており、
datetime.datetime
オブジェクトを昇順で表現しています。month
: 与えられた月を表現する datetime.date
オブジェクトです。next_month
: 翌月の初日を表現する datetime.datetime
オブジェクト
です。もし翌月が未来にあるなら、 None
になります。previous_month
: 前月の初日を表現する datetime.date
オブジェクト
です。 next_month
とは違いこれは None
になりません。Notes
template_name_suffix
はデフォルトで _archive_month
を使います。BaseWeekArchiveView
¶WeekArchiveView
¶与えられた週すべてのオブジェクトを表示する週単位のアーカイブページを表示
します。未来の 日付のオブジェクトは allow_future
を True
にしない
限り表示されません。
BaseWeekArchiveView
は
WeekArchiveView
と同じ振る舞いを提供
します。しかし、
MultipleObjectTemplateResponseMixin
を含んでいません。
Mixin
django.views.generic.list.MultipleObjectTemplateResponseMixin
django.views.generic.dates.YearMixin
django.views.generic.dates.MonthMixin
django.views.generic.dates.BaseDateListView
コンテキスト
(django.views.generic.dates.BaseDateListView
経由で)
django.views.generic.list.MultipleObjectMixin
に提供されるコン
テキストに加えて、テンプレートコンテキストは以下のようなものがあります:
week
: 与えられた週の初日を表現する datetime.date
オブジェクトです。Notes
template_name_suffix
はデフォルトで _archive_week
を使います。BaseDayArchiveView
¶DayArchiveView
¶与えられた日のオブジェクトをすべて表示する日単位のアーカイブのページです。
その日が未来にある場合には 404 エラーが返されます。 allow_future
が
True
でない限り、オブジェクトが未来にあるかどうか気をつける必要があり
ます。
BaseDayArchiveView
は
DayArchiveView
と同じ振る舞いを提供
します。しかし、
MultipleObjectTemplateResponseMixin
を含んでいません。
Mixin
django.views.generic.list.MultipleObjectTemplateResponseMixin
django.views.generic.dates.YearMixin
django.views.generic.dates.MonthMixin
django.views.generic.dates.DayMixin
django.views.generic.dates.BaseDateListView
コンテキスト
(django.views.generic.dates.BaseDateListView
経由で)
django.views.generic.list.MultipleObjectMixin
に提供されるコン
テキストに加えて、テンプレートコンテキストは以下のようなものがあります:
day
: 与えられた日を表現する datetime.date
オブジェクトnext_day
: 翌日を表現する datetime.date
オブジェクトです。もし
その翌日が未来にある場合は None
になります。previous_day
: 前日を表現する datetime.date
オブジェクトです。
next_day
のように None
にはなりません。next_month
: 翌月の初日を表現する datetime.date
オブジェクトです。
もし翌月が未来にあるなら、 None
になります。previous_month
: 前月の初日を表現する datetime.date
オブジェクト
です。 next_month
のように None
にはなりません。Notes
template_name_suffix
は _archive_day
を使います。BaseTodayArchiveView
¶TodayArchiveView
¶今日 (today) のすべてのオブジェクトを表示する日単位のアーカイブページ
です。これはまさに django.views.generic.dates.DayArchiveView
と
同じですが、 year
/month
/day
属性の代わりに今日の日付が使われる
点が違います。
BaseTodayArchiveView
は
TodayArchiveView
と同じ振る舞いを提供
します。しかし、
MultipleObjectTemplateResponseMixin
を含んでいません。
Mixin
BaseDateDetailView
¶DateDetailView
¶個別オブジェクトを表現するページです。オブジェクトが持つ日付の値が未来にある
場合、デフォルトでは 404 エラーを送出します。 allow_future
を True
に設定することで 404 エラーを送出しません。
BaseDateDetailView
は
DateDetailView
と同じ振る舞いを提供
します。しかし、
SingleObjectTemplateResponseMixin
を含んでいません。
Mixin
Oct 26, 2017