Single object mixinsLink to this heading
SingleObjectMixinLink to this heading
- class django.views.generic.detail.SingleObjectMixinLink to this definition
現在の HTTP レスポンスに紐付いたオブジェクトをルックアップするための枠組みを提供します。
Methods and Attributes
- modelLink to this definition
The model that this view will display data for. Specifying
model = Foois effectively the same as specifyingqueryset = Foo.objects.all(), whereobjectsstands forFoo’s default manager.
- querysetLink to this definition
A
QuerySetthat represents the objects. If provided, the value ofquerysetsupersedes the value provided formodel.
- slug_fieldLink to this definition
スラグを含むモデル上のフィールドの名前です。デフォルトでは、
slug_fieldは'slug'です。
- slug_url_kwargLink to this definition
スラグを含む URLConf キーワード引数の名前です。デフォルトでは、
slug_url_kwargは'slug'です。
- pk_url_kwargLink to this definition
プライマリキーを含む URLConf キーワード引数の名前です。デフォルトでは、
pk_url_kwargは'pk'です。
- context_object_nameLink to this definition
Designates the name of the variable to use in the context.
- query_pk_and_slugLink to this definition
Trueの場合、get_object()がルックアップの際にプライマリキーとスラグの両方を使うようになります。デフォルトはFalseです。この属性は 安全でない直接オブジェクト参照 攻撃を軽減するのに役立ちます。 アプリケーションが連番のプライマリキーによって個々のオブジェクトにアクセスできるようにすると、攻撃者はすべての URL をブルートフォースで推測して、 アプリケーション内のすべてのオブジェクトのリストを取得してしまいます。 個々のオブジェクトにアクセスできるユーザがこのリストを取得できないようにするには、
query_pk_and_slugを `` True``に設定すると、各URLが 2 つの正しい非連番引数を必要とするため、URLを推測するのを防ぎます。 ユニークなスラグを使用するだけでも同じ目的を果たすことができますが、このスキームを使うことでユニークでないスラグを使用することができます。
- get_object(queryset=None)Link to this definition
ビューが表示する単一のオブジェクトを返します。
querysetが指定されている場合、そのクエリセットがオブジェクトのソースとして使用されます。 それ以外の場合は、get_queryset()が使用されます。get_object()は、ビューへの引数の中からpk_url_kwarg引数を探します。 この引数が見つかった場合、このメソッドはその値を使用してプライマリキーベースのルックアップを実行します。 この引数が見つからなかった場合は、slug_url_kwarg引数を探し、slug_fieldを使用してスラグのルックアップを実行します。query_pk_and_slugがTrueのときは、get_object()はプライマリキーとスラグの両方を使ってルックアップを実施します。
- get_queryset()Link to this definition
ビューが表示するオブジェクトを取得するために使われる、クエリセットを返します。デフォルトでは、
get_queryset()がqueryset属性がセットされていればこの値を返しますが、セットされていない場合はmodelのデフォルトのマネージャーのall()を呼んでQuerySetを組み立てます。
- get_context_object_name(obj)Link to this definition
ビューが操作するデータを格納するために使われる、コンテクストの変数名を返します。
context_object_nameがセットされていない場合、コンテクスト名はクエリセットを構成するモデルのmodel_nameから組み立てられます。例えば、モデルArticleのコンテクストオブジェクトは'article'と名付けられます。
- get_context_data(**kwargs)Link to this definition
Returns context data for displaying the object.
このメソッドの基本的な実装では、
self.object属性が (たとえNoneでも)ビューによってセットされることが必須です。 この mixin をビルトインのビュー以外で使うときには、この実装を忘れないでください。下記の内容のディクショナリを返します。
object: ビューが表示しているオブジェクトです (self.object)。context_object_name:self.objectは、get_context_object_name()によって返された名前の下でも保持されます。デフォルトではモデル名の小文字の文字列となります。
- get_slug_field()Link to this definition
スラグによってルックアップするために使われるスラグフィールドの名前を返します。デフォルトでは、単に
slug_fieldの値を返します。
SingleObjectTemplateResponseMixinLink to this heading
- class django.views.generic.detail.SingleObjectTemplateResponseMixinLink to this definition
単一のオブジェクトインスタンスを操作するビューをレンダリングする、テンプレートベースのレスポンスを実行する mixin クラスです。 混合されたビューは、操作するオブジェクトインスタンスである
self.objectが必要です。self.objectは、通常 (必須ではありませんが) Django モデルのインスタンスです。 ビューが新しいインスタンスを構築中の場合は、Noneになることがあります。Extends
Methods and Attributes
- template_name_fieldLink to this definition
現在のオブジェクトインスタンス上のフィールドで、テンプレートの名前の候補を決定するために使用できます。
template_name_field自体、または現在のオブジェクトインスタンスのtemplate_name_fieldの値のいずれかがNoneの場合、オブジェクトはテンプレート名候補として使用されません。
- template_name_suffixLink to this definition
自動生成されたテンプレート名候補に追加する接尾辞です。 デフォルトの接尾辞は
_detailです。
- get_template_names()Link to this definition
Returns a list of candidate template names. Returns the following list:
the value of
template_nameon the view (if provided)(有効な場合) ビューが操作するオブジェクトインスタンス上の
template_name_fieldの内容<app_label>/<model_name><template_name_suffix>.html