キャッシング - 汎用ビューの使用
gbvy[W
一覧/詳細のインターフェイスを実装するために使用されるビューの*の範囲。 (Djangoのドキュメントのインデックスと詳細ページのような)。
ビューの*範囲は、年/月/日アーカイブページと関連付けられている詳細は"最新の"ページ(たとえば、Djangoのウェブログの年、月、日、詳細、および最新のページ)年を達成するために。
*の作成、編集、およびオブジェクトを削除するためのビューのシリーズ。
from django.conf.urls.defaults import *
from django_website.apps.blog.models import Entry
info_dict = {
'model': Entry,
'date_field': 'pub_date',
}
urlpatterns = patterns('django.views.generic.date_based',
(r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\w{1,2})/(?P<slug>[-\w]+)/$', 'object_detail', dict(info_dict, slug_field='slug')),
(r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\w{1,2})/$', 'archive_day', info_dict),
(r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/$','archive_month', info_dict),
(r'^(?P<year>\d{4})/$','archive_year', info_dict),
(r'^/?$','archive_index', info_dict),
)
見てわかるように、このURLconfはinfo_dictをいくつかのオプションで定義されています。その他の関連情報を参照するには、ご希望のように、info_dictをで'model'のビューには、GMが(この場合は、エントリがで)を使用するどのモデル教えてください。
各共通ビューの以下の詳細な説明、および各汎用ビューはキーワード引数リストが必要です。たとえば、追加の情報から来る可能性があるURLパターン(月、日、年、等)から来るかもしれないの引数は(等モデル、date_fieldなど)辞書、上記に注意してください。
最も一般的な見解は(クラスのインスタンス)をモデルクラスは、モデルのキーが必要です
"簡単な"一般的なビューを使用します
リダイレクトを実装する必要はありませんビューテンプレートをレンダリングするために必要なロジック:いくつかの簡単な一般的なビューの状況の取り扱いを含むdjango.views.generic.simpleモジュール。これらのビューがあります:
direct_to_template
urlpatterns = patterns('django.views.generic.simple',
(r'^foo/$', 'direct_to_template', {'template': 'foo_index'}),
(r'^foo/(?P<id>\d+)/$', 'direct_to_template', {'template': 'foo_detail'}),
)
... /リクエスト/ fooにある場合、Djangoは、foo_indexテンプレートをレンダリングします/ foo/15は/要求は、コンテキスト変数を{{はparams.id}}(その値が15に設定されている)レンダリングfoo_detailテンプレートが使用されます。
redirect_to
リダイレクト指定されたURLに。
指定されたURLに置き換え得るために、URLのパラメータ値で使用される辞書形式の文字列を含めることができます。 / fooからの例/
urlpatterns = patterns('django.views.generic.simple',
('^foo/(?p<id>\d+)/$', 'redirect_to', {'url' : '/bar/%(id)s/'}),
)
日付ベースの汎用ビュー
日付ベースの汎用ビューは、日付ベースのデータを処理するための6つの機能を提供しています(モジュール``に``はdjango.views.generic.date_based)。モデルに加えて、すべての日付ベースの汎用ビューもdate_fieldのパラメータが必要です。これは、日付をキーフィールドに格納されているオブジェクトを示すことです。
また、すべての日付ベースの汎用ビューには、次のオプションパラメータをサポートしています:
パラメータ
概要
template_name
デフォルトのテンプレートで使用されるビューカバー名
extra_lookup_kwargs
extra_context
processors
ビューのテンプレートRequestContextのプロセッサのタプルの一つは、ドキュメントをRequestContextに参照してください
通常の日付関数に基づいて:
archive_index
インデックスページの上部には、"最新の"オブジェクトを表示します。
パラメータ
概要
num_latest
このページでは、エントリの数を示し、デフォルト値は15です。
allow_empty
Falseのないオブジェクトを表示する場合は、空のインデックスページを表示する404の代わりにスローされます。既定値はFalseです
*
date_list
List of years with objects
latest
日付順最新のオブジェクト
archive_year
毎年の書類提出。 URLモードは、このパラメータ今年する必要があります
Allow_emptyは、オプションのパラメータを、archive_indexと同様のサポートされています。
ここではテンプレートのコンテキストは:
date_list
List of months in the given year with objects
year
指定された年(整数)
archive_month
月別アーカイブ。年と月のパラメータを指定する必要があります。あなたは月の形式でURLを変更したい場合は、追加のオプションです。month_formatを渡すことができます。
です。month_format time.strftimeは、Pythonの形式の文字列で受け入れた。 (strftimeのマニュアルを参照してください。)デフォルトの設定では、月、3文字の略語ですは"%b"です。するには、"%m"を使用して、デジタルに変更することができます。
template_object_nameのは、デフォルト値は'object'になっています使用されるテンプレート変数の名前を指定するオプションのパラメータを受け付けます。
month
(datetime.dateオブジェクト)今月考える
next_month
なしと比較して、来月の最初の日(datetime.dateオブジェクト)、そうでない場合は、来月、
previous_month
先月、最初の日(datetime.dateオブジェクト)
object_list
archive_week
ウィークリーアーカイブ。年と週のパラメータを指定する必要があります。一週間のパラメータには、最初の年を表す整数の形式の文字列は、週数(日曜日以降の週)
template_object_nameが使用されるテンプレート変数の名前を指定するオプションのパラメータを受け付けます。パラメータのデフォルト値は'object'になっています。
デフォルト
テンプレートコンテキスト:
object_list
template_object_nameのパラメータは、変数名を使用して変更することができます。 (上記を参照してください)は、例えば、template_object_nameのは、fooの場合、変数名がfoo_listです。
week
archive_day
archive_month同様にオプションのパラメータです。month_formatを渡すことができます。また、オプションのday_formatを渡すことができ、そのデフォルト値は"%d個の"(1月の最初の日、整数、1-31)です。
template_object_nameのは、デフォルト値は'object'になっています使用されるテンプレート変数の名前を指定するオプションのパラメータを受け付けます。
デフォルト
object_list
リリースの日付は、オブジェクトのリストが与えられます。これを変更することができます変数名を使用してtemplate_object_nameのパラメータを設定します。 (上記を参照してください)は、例えば、template_object_nameのは、fooの場合、変数名がfoo_listです。
day
指定された日付(のdatetime.datetimeオブジェクト)
previous_day
日(のdatetime.datetimeオブジェクト)について
next_day
翌日(datetime.datetimeオブジェクト)は、指定された日付が、今日されている場合なしと比較して
archive_today
object_detail
単一のオブジェクトの表面。似ているarchive_day /日の引数年/月を提供する必要があります。 /日/年/月/日/スラグ/または/年/月/ object_idの/:この関数は、URLの2つのタイプに使用することができます。
また、それは、オブジェクト自体のフィールドに格納されている名前を使用するテンプレートをtemplate_name_fieldことを示すためにパラメータを渡すことができます。同じarchive_dayは、object_detailのです。month_formatとday_formatは、オプションのパラメータを受け付けます。
template_object_nameのは、デフォルト値は'object'になっています使用されるテンプレート変数の名前を指定するオプションのパラメータを受け付けます。
/詳細汎用ビューは、リストを使用して
同じ日に、これらのビューと共通ビューのすべてが同じ4つのオプションのパラメータ(上記参照)の対象となります - 明らかに、彼らは同意しないdate_fieldパラメータいることを確認します。
これらのビューがあります:
object_list
オブジェクトのリスト。
を受け入れ、次の省略可能なパラメータ:
概要
paginate_by
allow_empty
template_object_name
指定に使用されるテンプレート変数の名前は、デフォルト値は'object'はです。
デフォルト
ここではテンプレートのコンテキストは:
object_list
is_paginated
その結果かどうかを設定改ページ:TrueまたはFalse
結果は、ページングされている場合、コンテキストは、次の追加の変数があるでしょう:
results_per_page
オブジェクトの数
has_next
がされ、次の
has_previous
page
ページ番号
next
previous
pages
総ページ数
hits
オブジェクトの合計数
object_detail
オブジェクトの詳細ページには、日付object_detailビューに基づいて上記のビューと同様、1つだけ例外が、明らかに、それが/日の引数年/月を受け付けません。
django.views.generic.create_updateモジュールが作成、編集、およびオブジェクトを削除するための一連の機能が含まれています。これらのビューは、上記のシリーズは、同じグローバルパラメータの対象とするような見ている。また、login_requiredパラメータを持っています。 Trueの場合、ユーザーがこのページにアクセスできるシステムをログインする必要があります。 (login_required既定値はFalseです。)
概要:
create_object
新しいオブジェクトを作成します。 post_save_redirectは、次のURLを有効に保存した後、オブジェクトを指定するために使用:追加のオプションパラメータがあり。そのデフォルト値はobject.get_absolute_url()です。
オブジェクトのフィールドによると、辞書形式のフォーマット文字列が含まれる場合がありますpost_save_redirect対応するパラメータを置き換えるために属性を設定します。たとえば、="/世論調査/%を(slug)s /"のpost_save_redirect使用することができます。
ここではテンプレートのコンテキストは:
form
詳細については、フォームテンプレートのラッパーの使用についてのマニピュレータとフォームフィールドマニュアルを参照してください。
update_object
既存のオブジェクトを編集します。同じ追加スラグ/ IDパラメータを持って。 (上記参照)と同じlist_detail.object_detailとして、create_objectと同じ同じpost_save_redirect。
template_object_nameのは、デフォルト値は'object'になっています使用されるテンプレート変数の名前を指定するオプションのパラメータを受け付けます。
ここではテンプレートのコンテキストは:
form
オブジェクトの梱包形態
object
編集元のオブジェクトになります。 template_object_nameのパラメータは、変数名を使用して変更することができます。 (上記を参照してください)は、例えば、template_object_nameのは、fooされている場合、fooは変数名ではなく、オブジェクトです。
delete_object
削除、既存のオブジェクトを取得します。リクエストメソッドがPOSTである場合にのみ、指定されたオブジェクトが実際に削除されます。あなたは、GETの方法を使用してオブジェクトを表示する場合は、フォームを自動的に同じURLのPOSTのように記述され、確認ページが表示されます。
デフォルトで使用される提出がGETされていることを表示する場合、
object
オブジェクトを使用すると、変数名を変更することができますtemplate_object_nameのパラメータを使用して削除されます。 (上記を参照してください)は、例えば、template_object_nameのは、fooされている場合、fooは変数名ではなく、オブジェクトです。