{"title":"フォームレンダリング API","version":"5.2","locale":"ja","docname":"ref/forms/renderers","url":"/ja/5.2/ref/forms/renderers/","canonical":"https://djangodocs.dev/ja/5.2/ref/forms/renderers/","summary":"Djangoのフォームウィジェットは、Djangoの テンプレートエンジンシステム を使用してレンダリングされます。 フォームのレンダリングプロセスは、いくつかのレベルでカスタマイズできます: ウィジェットはカスタムテンプレート名を指定できます。 フォームとウィジェットは、カスタムレンダラークラスを指定できます。…","html":"<span id=\"the-form-rendering-api\"></span><h1>フォームレンダリング API<a class=\"heading-anchor\" href=\"#module-django.forms.renderers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Djangoのフォームウィジェットは、Djangoの <a class=\"reference internal\" href=\"/ja/5.2/topics/templates/\"><span class=\"doc\">テンプレートエンジンシステム</span></a> を使用してレンダリングされます。</p>\n<p>フォームのレンダリングプロセスは、いくつかのレベルでカスタマイズできます:</p>\n<ul class=\"simple\">\n<li><p>ウィジェットはカスタムテンプレート名を指定できます。</p></li>\n<li><p>フォームとウィジェットは、カスタムレンダラークラスを指定できます。</p></li>\n<li><p>ウィジェットのテンプレートはプロジェクトによって上書きできます。(再利用可能なアプリケーションは通常、組込みテンプレートを上書きすべきではありません。なぜなら、それがプロジェクトのカスタムテンプレートと競合する可能性があるからです。)</p></li>\n</ul>\n<section id=\"the-low-level-render-api\">\n<span id=\"low-level-widget-render-api\"></span><h2>低レベルのレンダリングAPI<a class=\"heading-anchor\" href=\"#the-low-level-render-api\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>フォームテンプレートのレンダリングは、カスタマイズ可能なレンダラークラスによって制御されます。カスタムレンダラーは、<a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-FORM_RENDERER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FORM_RENDERER</span></code></a> 設定を更新することによって指定できます。デフォルトでは <code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code><a class=\"reference internal\" href=\"#django.forms.renderers.DjangoTemplates\" title=\"django.forms.renderers.DjangoTemplates\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.forms.renderers.DjangoTemplates</span></code></a><code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code> になっています。</p>\n<p>カスタムフォームレンダラーを指定し、<a class=\"reference internal\" href=\"#django.forms.renderers.BaseRenderer.form_template_name\" title=\"django.forms.renderers.BaseRenderer.form_template_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">form_template_name</span></code></a> をオーバーライドすることで、プロジェクト全体のデフォルトフォームマークアップを一か所から調整できます。</p>\n<p><a class=\"reference internal\" href=\"/ja/5.2/ref/forms/api/#django.forms.Form.default_renderer\" title=\"django.forms.Form.default_renderer\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.default_renderer</span></code></a> 属性を設定するか、または <a class=\"reference internal\" href=\"/ja/5.2/ref/forms/api/#django.forms.Form.render\" title=\"django.forms.Form.render\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.render()</span></code></a> や <a class=\"reference internal\" href=\"/ja/5.2/ref/forms/widgets/#django.forms.Widget.render\" title=\"django.forms.Widget.render\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Widget.render()</span></code></a> のメソッドの <code class=\"docutils literal notranslate\"><span class=\"pre\">renderer</span></code> 引数を使用することで、フォームごとやウィジェットごとにカスタムレンダラーを提供することもできます。</p>\n<p>マッチングポイントは、formset のレンダリングに適用されます。詳細は、<a class=\"reference internal\" href=\"/ja/5.2/topics/forms/formsets/#formset-rendering\"><span class=\"std std-ref\">ビューとテンプレートでフォームセットを使う</span></a> を参照してください。</p>\n<p><a class=\"reference internal\" href=\"#built-in-template-form-renderers\"><span class=\"std std-ref\">組み込みのテンプレートフォームレンダラ</span></a> のいずれかを使用するか、独自のものを実装してください。カスタムレンダラは、<code class=\"docutils literal notranslate\"><span class=\"pre\">render(template_name,</span> <span class=\"pre\">context,</span> <span class=\"pre\">request=None)</span></code> メソッドを実装する必要があります。レンダリングされたテンプレート(文字列として)を返すか、 <a class=\"reference internal\" href=\"/ja/5.2/topics/templates/#django.template.TemplateDoesNotExist\" title=\"django.template.TemplateDoesNotExist\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">TemplateDoesNotExist</span></code></a> を発生させるべきです。</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.renderers.BaseRenderer\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BaseRenderer</span></span><a class=\"heading-anchor\" href=\"#django.forms.renderers.BaseRenderer\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>組み込みフォームレンダラーの基底クラスです。</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.renderers.BaseRenderer.form_template_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">form_template_name</span></span><a class=\"heading-anchor\" href=\"#django.forms.renderers.BaseRenderer.form_template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>フォームをレンダリングするために使用するテンプレートのデフォルト名です。</p>\n<p>デフォルトは <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;django/forms/div.html&quot;</span></code> テンプレートです。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.renderers.BaseRenderer.formset_template_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">formset_template_name</span></span><a class=\"heading-anchor\" href=\"#django.forms.renderers.BaseRenderer.formset_template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>フォームセットをレンダリングするために使用するテンプレートのデフォルト名。</p>\n<p>デフォルトは <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;django/forms/formsets/div.html&quot;</span></code> テンプレートです。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.renderers.BaseRenderer.field_template_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">field_template_name</span></span><a class=\"heading-anchor\" href=\"#django.forms.renderers.BaseRenderer.field_template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code> をレンダリングするために使用されるテンプレートのデフォルト名。</p>\n<p>デフォルトは <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;django/forms/field.html&quot;</span></code> です。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.renderers.BaseRenderer.bound_field_class\">\n<span class=\"sig-name descname\"><span class=\"pre\">bound_field_class</span></span><a class=\"heading-anchor\" href=\"#django.forms.renderers.BaseRenderer.bound_field_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"5.2\">\n<p class=\"version-note-title\">New in Django 5.2</p></aside>\n<p>プロジェクト全体でフォームフィールドを表現するために使用されるデフォルトのクラスです。</p>\n<p><a class=\"reference internal\" href=\"/ja/5.2/ref/forms/api/#django.forms.BoundField\" title=\"django.forms.BoundField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BoundField</span></code></a> クラスのデフォルト。</p>\n<p>このデフォルトクラスは、フォームごとに <a class=\"reference internal\" href=\"/ja/5.2/ref/forms/api/#django.forms.Form.bound_field_class\" title=\"django.forms.Form.bound_field_class\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.bound_field_class</span></code></a> を、フィールドごとに <a class=\"reference internal\" href=\"/ja/5.2/ref/forms/fields/#django.forms.Field.bound_field_class\" title=\"django.forms.Field.bound_field_class\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Field.bound_field_class</span></code></a> を指定することで、さらにカスタマイズできます。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.renderers.BaseRenderer.get_template\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_template</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">template_name</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.renderers.BaseRenderer.get_template\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>サブクラスは、適切なテンプレート検索ロジックを持つようにこのメソッドを実装しなければなりません。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.renderers.BaseRenderer.render\">\n<span class=\"sig-name descname\"><span class=\"pre\">render</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">template_name</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">context</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">request</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.renderers.BaseRenderer.render\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>指定されたテンプレートをレンダリングします。存在しない場合は、 <a class=\"reference internal\" href=\"/ja/5.2/topics/templates/#django.template.TemplateDoesNotExist\" title=\"django.template.TemplateDoesNotExist\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">TemplateDoesNotExist</span></code></a> を発生させます。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"built-in-template-form-renderers\">\n<span id=\"id1\"></span><h2>組み込みのテンプレートフォームレンダラー<a class=\"heading-anchor\" href=\"#built-in-template-form-renderers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"djangotemplates\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DjangoTemplates</span></code><a class=\"heading-anchor\" href=\"#djangotemplates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.renderers.DjangoTemplates\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">DjangoTemplates</span></span><a class=\"heading-anchor\" href=\"#django.forms.renderers.DjangoTemplates\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>このレンダラーは、 (<a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a> 設定で構成されているものとは接続されていない) 独立した <a class=\"reference internal\" href=\"/ja/5.2/topics/templates/#django.template.backends.django.DjangoTemplates\" title=\"django.template.backends.django.DjangoTemplates\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DjangoTemplates</span></code></a> エンジンを使用しています。まず <a class=\"extlink-source reference external\" href=\"https://github.com/django/django/blob/stable/5.2.x/django/forms/templates\">django/forms/templates</a> にある組み込みのフォームテンプレートディレクトリからテンプレートを読み込み、次に <a class=\"reference internal\" href=\"/ja/5.2/ref/templates/api/#django.template.loaders.app_directories.Loader\" title=\"django.template.loaders.app_directories.Loader\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">app_directories</span></code></a> ローダーを使用してインストール済みアプリのテンプレートディレクトリから読み込みます。</p>\n<p>カスタマイズを施した <a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a> 設定からテンプレートをレンダリングしたい場合、例えばコンテキストプロセッサなどを使用するには、<a class=\"reference internal\" href=\"#django.forms.renderers.TemplatesSetting\" title=\"django.forms.renderers.TemplatesSetting\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TemplatesSetting</span></code></a> レンダラーを使用してください。</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.renderers.DjangoDivFormRenderer\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">DjangoDivFormRenderer</span></span><a class=\"heading-anchor\" href=\"#django.forms.renderers.DjangoDivFormRenderer\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<aside class=\"version-note version-deprecated\" data-version=\"5.0\">\n<p class=\"version-note-title\">Deprecated since Django 5.0</p><p><span class=\"versionmodified deprecated\">バージョン 5.0 で非推奨.</span></p>\n</aside>\n<p><a class=\"reference internal\" href=\"#django.forms.renderers.DjangoTemplates\" title=\"django.forms.renderers.DjangoTemplates\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DjangoTemplates</span></code></a> のエイリアス。</p>\n</section>\n<section id=\"jinja2\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Jinja2</span></code><a class=\"heading-anchor\" href=\"#jinja2\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.renderers.Jinja2\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Jinja2</span></span><a class=\"heading-anchor\" href=\"#django.forms.renderers.Jinja2\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>このレンダラーは <a class=\"reference internal\" href=\"#django.forms.renderers.DjangoTemplates\" title=\"django.forms.renderers.DjangoTemplates\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DjangoTemplates</span></code></a> レンダラーと同じですが、<a class=\"reference internal\" href=\"/ja/5.2/topics/templates/#django.template.backends.jinja2.Jinja2\" title=\"django.template.backends.jinja2.Jinja2\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Jinja2</span></code></a> バックエンドを使用します。組み込みウィジェットのテンプレートは <a class=\"extlink-source reference external\" href=\"https://github.com/django/django/blob/stable/5.2.x/django/forms/jinja2\">django/forms/jinja2</a> にあり、インストールされたアプリは <code class=\"docutils literal notranslate\"><span class=\"pre\">jinja2</span></code> ディレクトリ内にテンプレートを提供できます。</p>\n<p>このバックエンドを使用するには、プロジェクトとそのサードパーティアプリのすべてのフォームとウィジェットにJinja2のテンプレートがなければなりません。ウィジェットにJinja2のテンプレートがない場合、自分で提供しない限り、このレンダラーを使用することはできません。例えば、 <a class=\"reference internal\" href=\"/ja/5.2/ref/contrib/admin/#module-django.contrib.admin\" title=\"django.contrib.admin: Django's admin site.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.admin</span></code></a> は、Djangoのテンプレートタグを使用しているため、そのウィジェットにJinja2テンプレートを含んでいません。</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.renderers.Jinja2DivFormRenderer\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">Jinja2DivFormRenderer</span></span><a class=\"heading-anchor\" href=\"#django.forms.renderers.Jinja2DivFormRenderer\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<aside class=\"version-note version-deprecated\" data-version=\"5.0\">\n<p class=\"version-note-title\">Deprecated since Django 5.0</p><p><span class=\"versionmodified deprecated\">バージョン 5.0 で非推奨.</span></p>\n</aside>\n<p><a class=\"reference internal\" href=\"#django.forms.renderers.Jinja2\" title=\"django.forms.renderers.Jinja2\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Jinja2</span></code></a> のエイリアス。</p>\n</section>\n<section id=\"templatessetting\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">TemplatesSetting</span></code><a class=\"heading-anchor\" href=\"#templatessetting\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.renderers.TemplatesSetting\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TemplatesSetting</span></span><a class=\"heading-anchor\" href=\"#django.forms.renderers.TemplatesSetting\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>このレンダラーは、フォームとウィジェットのテンプレートの取得方法を完全に制御できます。これは、 <a class=\"reference internal\" href=\"/ja/5.2/topics/templates/#django.template.loader.get_template\" title=\"django.template.loader.get_template\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">get_template()</span></code></a> を使用して、 <a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a> 設定で構成されている内容に基づいてテンプレートを見つけます。</p>\n<p>このレンダラーを組み込みテンプレートと一緒に使用するには, 次のいずれかが必要です:</p>\n<ul>\n<li><p><a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> に <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.forms'</span></code> が含まれていて、少なくとも一つのエンジンが <a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-TEMPLATES-APP_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">APP_DIRS=True</span></code></a> に設定されている必要があります。</p></li>\n<li><p>テンプレートエンジンの <a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-TEMPLATES-DIRS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DIRS</span></code></a> に組み込みテンプレートディレクトリを追加します。そのパスを生成するには次のようにします:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">django</span>\n\n<span class=\"n\">django</span><span class=\"o\">.</span><span class=\"n\">__path__</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span> <span class=\"o\">+</span> <span class=\"s2\">&quot;/forms/templates&quot;</span>  <span class=\"c1\"># or &#39;/forms/jinja2&#39;</span>\n</code></pre></div>\n</li>\n</ul>\n<p>このレンダラーを使用するには、プロジェクトが必要とするフォームテンプレートが見つかるようにする必要があります。</p>\n</section>\n</section>\n<section id=\"context-available-in-formset-templates\">\n<h2>フォームセットテンプレートで利用可能なコンテキスト<a class=\"heading-anchor\" href=\"#context-available-in-formset-templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>フォームセットテンプレートは、 <a class=\"reference internal\" href=\"/ja/5.2/topics/forms/formsets/#django.forms.formsets.BaseFormSet.get_context\" title=\"django.forms.formsets.BaseFormSet.get_context\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">BaseFormSet.get_context()</span></code></a> からコンテキストを受け取ります。デフォルトでは、フォームセットは以下の値を含む辞書を受け取ります:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">formset</span></code>: フォームセットのインスタンス。</p></li>\n</ul>\n</section>\n<section id=\"context-available-in-form-templates\">\n<h2>フォームテンプレートで利用可能なコンテキスト<a class=\"heading-anchor\" href=\"#context-available-in-form-templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>フォームテンプレートは、 <a class=\"reference internal\" href=\"/ja/5.2/ref/forms/api/#django.forms.Form.get_context\" title=\"django.forms.Form.get_context\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.get_context()</span></code></a> からコンテキストを受け取ります。デフォルトでは、フォームは次の値を持つ辞書を受け取ります。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">form</span></code>: バインドされたフォーム。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code>: 隠されたフィールドを除く、すべてのバインドされたフィールド。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">hidden_fields</span></code>: すべての隠されたバインドフィールド。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">errors</span></code>: フォームの非フィールド関連または非表示フィールド関連の全エラー。</p></li>\n</ul>\n</section>\n<section id=\"context-available-in-field-templates\">\n<h2>フィールドテンプレートで利用可能なコンテキスト<a class=\"heading-anchor\" href=\"#context-available-in-field-templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>フィールドテンプレートは、 <a class=\"reference internal\" href=\"/ja/5.2/ref/forms/api/#django.forms.BoundField.get_context\" title=\"django.forms.BoundField.get_context\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">BoundField.get_context()</span></code></a> からコンテキストを受け取ります。デフォルトでは、フィールドは以下の値を含む辞書を受け取ります:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">field</span></code>: <a class=\"reference internal\" href=\"/ja/5.2/ref/forms/api/#django.forms.BoundField\" title=\"django.forms.BoundField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BoundField</span></code></a> 。</p></li>\n</ul>\n</section>\n<section id=\"context-available-in-widget-templates\">\n<h2>ウィジェットテンプレートで利用可能なコンテキスト<a class=\"heading-anchor\" href=\"#context-available-in-widget-templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Widgetテンプレートは <a class=\"reference internal\" href=\"/ja/5.2/ref/forms/widgets/#django.forms.Widget.get_context\" title=\"django.forms.Widget.get_context\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Widget.get_context()</span></code></a> からコンテキストを受け取ります。デフォルトでは、ウィジェットはコンテキスト内で単一の値、 <code class=\"docutils literal notranslate\"><span class=\"pre\">widget</span></code> を受け取ります。これは次のような値を含む辞書です:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">attrs</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">is_hidden</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code></p></li>\n</ul>\n<p>一部のウィジェットは、コンテキストにさらなる情報を追加します。例えば、<code class=\"docutils literal notranslate\"><span class=\"pre\">Input</span></code> のサブクラスであるすべてのウィジェットは <code class=\"docutils literal notranslate\"><span class=\"pre\">widget['type']</span></code> を定義し、<a class=\"reference internal\" href=\"/ja/5.2/ref/forms/widgets/#django.forms.MultiWidget\" title=\"django.forms.MultiWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultiWidget</span></code></a> はループ目的のために <code class=\"docutils literal notranslate\"><span class=\"pre\">widget['subwidgets']</span></code> を定義します。</p>\n</section>\n<section id=\"overriding-built-in-formset-templates\">\n<span id=\"id2\"></span><h2>組み込みのフォームセットテンプレートをオーバーライドする<a class=\"heading-anchor\" href=\"#overriding-built-in-formset-templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><a class=\"reference internal\" href=\"/ja/5.2/topics/forms/formsets/#django.forms.formsets.BaseFormSet.template_name\" title=\"django.forms.formsets.BaseFormSet.template_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BaseFormSet.template_name</span></code></a></p>\n<p>フォームセットテンプレートをオーバーライドするには、<a class=\"reference internal\" href=\"#django.forms.renderers.TemplatesSetting\" title=\"django.forms.renderers.TemplatesSetting\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TemplatesSetting</span></code></a> レンダラーを使用する必要があります。そうすると、フォームセットテンプレートのオーバーライドは、プロジェクト内の他のテンプレートをオーバーライドするのと <a class=\"reference internal\" href=\"/ja/5.2/howto/overriding-templates/\"><span class=\"doc\">同じように行うことができます</span></a> 。</p>\n</section>\n<section id=\"overriding-built-in-form-templates\">\n<span id=\"id3\"></span><h2>組み込みのフォームテンプレートをオーバーライドする<a class=\"heading-anchor\" href=\"#overriding-built-in-form-templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><a class=\"reference internal\" href=\"/ja/5.2/ref/forms/api/#django.forms.Form.template_name\" title=\"django.forms.Form.template_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.template_name</span></code></a></p>\n<p>フォームテンプレートをオーバーライドするには、<a class=\"reference internal\" href=\"#django.forms.renderers.TemplatesSetting\" title=\"django.forms.renderers.TemplatesSetting\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TemplatesSetting</span></code></a> レンダラーを使用する必要があります。その後、フォームテンプレートのオーバーライドは、プロジェクト内の他のテンプレートをオーバーライドする場合と <a class=\"reference internal\" href=\"/ja/5.2/howto/overriding-templates/\"><span class=\"doc\">同様に機能します</span></a>。</p>\n</section>\n<section id=\"overriding-built-in-field-templates\">\n<span id=\"id4\"></span><h2>組み込みのフィールドテンプレートをオーバーライドする<a class=\"heading-anchor\" href=\"#overriding-built-in-field-templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><a class=\"reference internal\" href=\"/ja/5.2/ref/forms/fields/#django.forms.Field.template_name\" title=\"django.forms.Field.template_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Field.template_name</span></code></a></p>\n<p>フィールドテンプレートを上書きするには、 <a class=\"reference internal\" href=\"#django.forms.renderers.TemplatesSetting\" title=\"django.forms.renderers.TemplatesSetting\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TemplatesSetting</span></code></a> レンダラーを使用する必要があります。それから、フィールドテンプレートのオーバーライドは、プロジェクト内の他のテンプレートのオーバーライドと <a class=\"reference internal\" href=\"/ja/5.2/howto/overriding-templates/\"><span class=\"doc\">同じ方法</span></a> で機能します。</p>\n</section>\n<section id=\"overriding-built-in-widget-templates\">\n<span id=\"id5\"></span><h2>組み込みのウィジェットテンプレートをオーバーライドする<a class=\"heading-anchor\" href=\"#overriding-built-in-widget-templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>各ウィジェットは、<code class=\"docutils literal notranslate\"><span class=\"pre\">input.html</span></code> のような値を持つ <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code> 属性を持っています。組み込みウィジェットテンプレートは、 <code class=\"docutils literal notranslate\"><span class=\"pre\">django/forms/widgets</span></code> パスに格納されています。例えば、 <code class=\"docutils literal notranslate\"><span class=\"pre\">django/forms/widgets/input.html</span></code> を定義することで、 <code class=\"docutils literal notranslate\"><span class=\"pre\">input.html</span></code> のカスタムテンプレートを提供できます。各ウィジェットのテンプレートの名前については、 <a class=\"reference internal\" href=\"/ja/5.2/ref/forms/widgets/#built-in-widgets\"><span class=\"std std-ref\">ビルトインのウィジェット</span></a> を参照してください。</p>\n<p>ウィジェットテンプレートをオーバーライドするには、 <a class=\"reference internal\" href=\"#django.forms.renderers.TemplatesSetting\" title=\"django.forms.renderers.TemplatesSetting\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TemplatesSetting</span></code></a> レンダラを使用する必要があります。その後、ウィジェットテンプレートのオーバーライドは、プロジェクト内の他のテンプレートをオーバーライドするのと <a class=\"reference internal\" href=\"/ja/5.2/howto/overriding-templates/\"><span class=\"doc\">同じ方法で機能</span></a> します。</p>\n</section>","rootId":"module-django.forms.renderers","toc":[{"title":"低レベルのレンダリングAPI","anchor":"the-low-level-render-api","children":[]},{"title":"組み込みのテンプレートフォームレンダラー","anchor":"built-in-template-form-renderers","children":[{"title":"DjangoTemplates","anchor":"djangotemplates","children":[]},{"title":"Jinja2","anchor":"jinja2","children":[]},{"title":"TemplatesSetting","anchor":"templatessetting","children":[]}]},{"title":"フォームセットテンプレートで利用可能なコンテキスト","anchor":"context-available-in-formset-templates","children":[]},{"title":"フォームテンプレートで利用可能なコンテキスト","anchor":"context-available-in-form-templates","children":[]},{"title":"フィールドテンプレートで利用可能なコンテキスト","anchor":"context-available-in-field-templates","children":[]},{"title":"ウィジェットテンプレートで利用可能なコンテキスト","anchor":"context-available-in-widget-templates","children":[]},{"title":"組み込みのフォームセットテンプレートをオーバーライドする","anchor":"overriding-built-in-formset-templates","children":[]},{"title":"組み込みのフォームテンプレートをオーバーライドする","anchor":"overriding-built-in-form-templates","children":[]},{"title":"組み込みのフィールドテンプレートをオーバーライドする","anchor":"overriding-built-in-field-templates","children":[]},{"title":"組み込みのウィジェットテンプレートをオーバーライドする","anchor":"overriding-built-in-widget-templates","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API リファレンス","url":"/ja/5.2/ref/"},{"docname":"ref/forms/index","title":"フォーム","url":"/ja/5.2/ref/forms/"}],"prev":{"docname":"ref/forms/formsets","title":"フォームセット (Formset) の関数","url":"/ja/5.2/ref/forms/formsets/"},"next":{"docname":"ref/forms/widgets","title":"ウィジェット","url":"/ja/5.2/ref/forms/widgets/"},"formats":{"html":"/ja/5.2/ref/forms/renderers/","markdown":"/ja/5.2/ref/forms/renderers.md","json":"/ja/5.2/ref/forms/renderers.json"},"source":"https://github.com/django/django/blob/stable/5.2.x/docs/ref/forms/renderers.txt","official":"https://docs.djangoproject.com/ja/5.2/ref/forms/renderers/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}