{"title":"フォーム API","version":"5.0","locale":"ja","docname":"ref/forms/api","url":"/ja/5.0/ref/forms/api/","canonical":"https://djangodocs.dev/ja/5.0/ref/forms/api/","summary":"このドキュメントについて このドキュメントでは、Django のフォーム API の詳細について説明します。このドキュメントを読む前に フォームについての概要 を読むことをおすすめします。 バインドされた (bound) フォームとバインドされていない (unbound) フォーム Link to this heading #…","html":"<span id=\"the-forms-api\"></span><h1>フォーム API<a class=\"heading-anchor\" href=\"#module-django.forms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<aside class=\"admonition-about-this-document admonition\">\n<p class=\"admonition-title\">このドキュメントについて</p>\n<p>このドキュメントでは、Django のフォーム API の詳細について説明します。このドキュメントを読む前に <a class=\"reference internal\" href=\"/ja/5.0/topics/forms/\"><span class=\"doc\">フォームについての概要</span></a> を読むことをおすすめします。</p>\n</aside>\n<section id=\"bound-and-unbound-forms\">\n<span id=\"ref-forms-api-bound-unbound\"></span><h2>バインドされた (bound) フォームとバインドされていない (unbound) フォーム<a class=\"heading-anchor\" href=\"#bound-and-unbound-forms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> のインスタンスには、データセットに <strong>バインドされている (bound な)</strong> ものと <strong>バインドされていない (unbound な)</strong> ものがあります。</p>\n<ul class=\"simple\">\n<li><p>データセットに <strong>バインドされた</strong> <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> インスタンスであれば、そのデータをバリデーションしたり、HTMLとしてフォームをレンダリングし、HTMLにデータを表示したりすることができます。</p></li>\n<li><p>データセットに <strong>バインドされていない</strong> <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> インスタンスでは、（検証するデータがないので）データをバリデーションすることはできませんが、空のフォームをHTMLとしてレンダリングできます。</p></li>\n</ul>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form\">\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\">Form</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form\"><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.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> のインスタンスを作成するには、クラスの初期化を行います。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>フォームにデータをバインドするには、辞書型のデータを <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> クラスのコンストラクタの最初のパラメータとして渡します。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;hello&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;sender&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo@example.com&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;cc_myself&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>この辞書では、キーは <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> クラスの属性に対応するフィールド名を、値には検証したいデータを指定します。これらは通常文字列ですが、必ずしも文字列型でなくてもかまいません。後ほど解説しますが、渡すデータの型は、 <a class=\"reference internal\" href=\"/ja/5.0/ref/forms/fields/#django.forms.Field\" title=\"django.forms.Field\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Field</span></code></a> に依存します。</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.is_bound\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">is_bound</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.is_bound\"><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.Form.is_bound\" title=\"django.forms.Form.is_bound\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">is_bound</span></code></a> 属性の値を確認してください。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_bound</span>\n<span class=\"go\">False</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">({</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;hello&quot;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_bound</span>\n<span class=\"go\">True</span>\n</code></pre></div>\n<p>空の辞書を渡すと、データが空の <em>バインドされた</em> フォームが作成されることに注意してください。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">({})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_bound</span>\n<span class=\"go\">True</span>\n</code></pre></div>\n<p><a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> インスタンス内のデータを変更する方法はありません。 一度作成された <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> インスタンスのデータは、その有無に関わらず変更不可能であると考えてください。もし <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> インスタンスにバインドされたデータを変更したい場合や、バインドされていない <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> インスタンスをデータにバインドしたい場合は、別の <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> インスタンスを作成してください。</p>\n</section>\n<section id=\"using-forms-to-validate-data\">\n<h2>フォームをデータの検証に使用する<a class=\"heading-anchor\" href=\"#using-forms-to-validate-data\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.clean\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">clean</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.clean\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>相互に関連のあるフィールドに対して独自のバリデーションを追加する必要がある場合、<code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> 上で <code class=\"docutils literal notranslate\"><span class=\"pre\">clean()</span></code> を実装してください。具体的な使用方法は <a class=\"reference internal\" href=\"/ja/5.0/ref/forms/validation/#validating-fields-with-clean\"><span class=\"std std-ref\">互いに依存するフィールドをクリーニングして検証する</span></a> を参照してください。</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.is_valid\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">is_valid</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.is_valid\"><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.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> オブジェクトの主なタスクは、データの検証です。バインドされた <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> インスタンスでは、 <a class=\"reference internal\" href=\"#django.forms.Form.is_valid\" title=\"django.forms.Form.is_valid\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">is_valid()</span></code></a> メソッドを呼び出して検証を実行し、データが有効であるかどうかを示すブール値を返します。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;hello&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;sender&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo@example.com&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;cc_myself&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_valid</span><span class=\"p\">()</span>\n<span class=\"go\">True</span>\n</code></pre></div>\n<p>まずは無効なデータで試してみましょう。以下のケースでは、 <code class=\"docutils literal notranslate\"><span class=\"pre\">subject</span></code> は空白で（デフォルトではすべてのフィールドが必須なのでエラーになります）、 <code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code> が有効なメールアドレスではありません。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;sender&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;invalid email address&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;cc_myself&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_valid</span><span class=\"p\">()</span>\n<span class=\"go\">False</span>\n</code></pre></div>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.errors\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">errors</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.errors\"><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.Form.errors\" title=\"django.forms.Form.errors\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">errors</span></code></a> 属性にアクセスして、エラーメッセージの辞書を取得します。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">errors</span>\n<span class=\"go\">{&#39;sender&#39;: [&#39;Enter a valid email address.&#39;], &#39;subject&#39;: [&#39;This field is required.&#39;]}</span>\n</code></pre></div>\n<p>この辞書では、キーはフィールド名であり、値はエラーメッセージを表す文字列のリストです。エラーメッセージがリストに格納されているのは、1つのフィールドに複数のエラーメッセージが出力される場合があるからです。</p>\n<p><a class=\"reference internal\" href=\"#django.forms.Form.is_valid\" title=\"django.forms.Form.is_valid\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">is_valid()</span></code></a> を呼び出す前にも、 <a class=\"reference internal\" href=\"#django.forms.Form.errors\" title=\"django.forms.Form.errors\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">errors</span></code></a> にアクセスできます。フォームのデータは、最初に <a class=\"reference internal\" href=\"#django.forms.Form.is_valid\" title=\"django.forms.Form.is_valid\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">is_valid()</span></code></a> を呼び出すか、 <a class=\"reference internal\" href=\"#django.forms.Form.errors\" title=\"django.forms.Form.errors\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">errors</span></code></a> にアクセスした時点で検証されます。</p>\n<p>バリデーションのルーチンは、<a class=\"reference internal\" href=\"#django.forms.Form.errors\" title=\"django.forms.Form.errors\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">errors</span></code></a> や call <a class=\"reference internal\" href=\"#django.forms.Form.is_valid\" title=\"django.forms.Form.is_valid\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">is_valid()</span></code></a> を何度呼び出したとしても、最初の一度だけ呼び出されます。これは、バリデーションが副作用を持っている場合、その副作用は一度しか発生しないということを意味します。</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.errors.as_data\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.errors.</span></span><span class=\"sig-name descname\"><span class=\"pre\">as_data</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.errors.as_data\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>フィールドとオリジナルの <code class=\"docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code> インスタンスをマッピングする <code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> を返します。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"o\">.</span><span class=\"n\">as_data</span><span class=\"p\">()</span>\n<span class=\"go\">{&#39;sender&#39;: [ValidationError([&#39;Enter a valid email address.&#39;])],</span>\n<span class=\"go\">&#39;subject&#39;: [ValidationError([&#39;This field is required.&#39;])]}</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">code</span></code> によりエラーを特定する必要があるときはこのメソッドを使用してください。これによって、エラーメッセージの上書きや、エラーが存在するときのビューでの独自のロジックが作成できるようになります。独自のフォーマット (たとえば XML) でシリアライズするためにも使えます。たとえば、<a class=\"reference internal\" href=\"#django.forms.Form.errors.as_json\" title=\"django.forms.Form.errors.as_json\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">as_json()</span></code></a> は <code class=\"docutils literal notranslate\"><span class=\"pre\">as_data()</span></code> を利用しています。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">as_data()</span></code> の必要性は、後方互換性に起因します。以前は <code class=\"docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code> インスタンスは <strong>レンダリングされた</strong> エラーメッセージが <code class=\"docutils literal notranslate\"><span class=\"pre\">Form.errors</span></code> ディクショナリに追加されると同時に消失していました。できれば <code class=\"docutils literal notranslate\"><span class=\"pre\">Form.errors</span></code> が <code class=\"docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code> インスタンスを保持し、<code class=\"docutils literal notranslate\"><span class=\"pre\">as_</span></code> プレフィクスを伴うメソッドがエラーをレンダリングできるのが理想でしたが、<code class=\"docutils literal notranslate\"><span class=\"pre\">Form.errors</span></code> 内のレンダリングされたエラーメッセージを受け取る可能性があるコードを壊さないために、逆の実装にしなくてはなりませんでした。</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.errors.as_json\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.errors.</span></span><span class=\"sig-name descname\"><span class=\"pre\">as_json</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">escape_html</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.errors.as_json\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>エラーをJSONとしてシリアライズしたものを返します。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"o\">.</span><span class=\"n\">as_json</span><span class=\"p\">()</span>\n<span class=\"go\">{&quot;sender&quot;: [{&quot;message&quot;: &quot;Enter a valid email address.&quot;, &quot;code&quot;: &quot;invalid&quot;}],</span>\n<span class=\"go\">&quot;subject&quot;: [{&quot;message&quot;: &quot;This field is required.&quot;, &quot;code&quot;: &quot;required&quot;}]}</span>\n</code></pre></div>\n<p>デフォルトでは、<code class=\"docutils literal notranslate\"><span class=\"pre\">as_json()</span></code> は出力をエスケープしません。フォームビューへのAJAXリクエストなど、クライアントがレスポンスを解釈しエラーをページに挿入する場合には、クロスサイトスクリプティング攻撃の可能性を避けるために、クライアント側で結果をエスケープする必要があります。これはJavaScriptで、 <code class=\"docutils literal notranslate\"><span class=\"pre\">element.textContent</span> <span class=\"pre\">=</span> <span class=\"pre\">errorText</span></code> 、またはjQueryの <code class=\"docutils literal notranslate\"><span class=\"pre\">$(el).text(errorText)</span></code> (<code class=\"docutils literal notranslate\"><span class=\"pre\">.html()</span></code> 関数ではなく) を使用することで実行できます。</p>\n<p>何らかの理由でクライアントサイドのエスケープを使いたくない場合は、 <code class=\"docutils literal notranslate\"><span class=\"pre\">escape_html=True</span></code> を設定すればエラーメッセージがエスケープされ、HTMLで直接使用できるようになります。</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.errors.get_json_data\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.errors.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_json_data</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">escape_html</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.errors.get_json_data\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>JSON にシリアライズできる形式のエラーを辞書として返します。 <a class=\"reference internal\" href=\"#django.forms.Form.errors.as_json\" title=\"django.forms.Form.errors.as_json\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.errors.as_json()</span></code></a> はシリアライズされた JSON を返しますが、これはシリアライズされる前のエラーデータを返します。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">escape_html</span></code> パラメータは、 <a class=\"reference internal\" href=\"#django.forms.Form.errors.as_json\" title=\"django.forms.Form.errors.as_json\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.errors.as_json()</span></code></a> で説明されているように動作します。</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.add_error\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">add_error</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">error</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.add_error\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>このメソッドは、<code class=\"docutils literal notranslate\"><span class=\"pre\">Form.clean()</span></code> メソッド内またはフォーム全体の外部から特定のフィールドにエラーを追加することを可能にします。たとえば、ビューから追加することもできます。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">field</span></code> 引数にはエラーを追加したいフィールド名を指定します。この値が <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> の場合、 <a class=\"reference internal\" href=\"#django.forms.Form.non_field_errors\" title=\"django.forms.Form.non_field_errors\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.non_field_errors()</span></code></a> によって返されるようなフィールドによらないエラーとして扱われます。</p>\n<p>フォームエラーを定義するときのベストプラクティスとして、 <code class=\"docutils literal notranslate\"><span class=\"pre\">error</span></code> 引数は文字列もしくは、できれば <code class=\"docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code> のインスタンスを指定します。フォームエラーの定義時のベストプラクティスについては、 <a class=\"reference internal\" href=\"/ja/5.0/ref/forms/validation/#raising-validation-error\"><span class=\"std std-ref\">ValidationError を発生させる</span></a> を参照してください。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">Form.add_error()</span></code> は <code class=\"docutils literal notranslate\"><span class=\"pre\">cleaned_data</span></code> からフィールドを自動的に削除してしまうことに注意してください。</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.has_error\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_error</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">code</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.Form.has_error\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>このメソッドは指定したフィールドが特定の <code class=\"docutils literal notranslate\"><span class=\"pre\">code</span></code> のエラーを持つか否かを真偽値で返します。<code class=\"docutils literal notranslate\"><span class=\"pre\">code</span></code> が <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> の場合、そのフィールドにエラーが一つもない場合に <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> を返します。</p>\n<p>フィールドによらないエラー (non-field errors) の有無を確認したい場合は、<code class=\"docutils literal notranslate\"><span class=\"pre\">field</span></code> 引数に <a class=\"reference internal\" href=\"/ja/5.0/ref/exceptions/#django.core.exceptions.NON_FIELD_ERRORS\" title=\"django.core.exceptions.NON_FIELD_ERRORS\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">NON_FIELD_ERRORS</span></code></a> を渡します。</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.non_field_errors\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">non_field_errors</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.non_field_errors\"><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.Form.errors\" title=\"django.forms.Form.errors\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.errors</span></code></a> からのエラーリストを返します。これには、<a class=\"reference internal\" href=\"#django.forms.Form.clean\" title=\"django.forms.Form.clean\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.clean()</span></code></a> で発生した <code class=\"docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code> や、<a class=\"reference internal\" href=\"#django.forms.Form.add_error\" title=\"django.forms.Form.add_error\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.add_error(None,</span> <span class=\"pre\">&quot;...&quot;)</span></code></a> を使用して追加されたエラーが含まれます。</p>\n<section id=\"behavior-of-unbound-forms\">\n<h3>バインドされていないフォームの動作<a class=\"heading-anchor\" href=\"#behavior-of-unbound-forms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>フォームにデータがない場合、フォームの検証は意味をなしません。一応記載しておくと、バインドされていないフォームでは次のような結果になります。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_valid</span><span class=\"p\">()</span>\n<span class=\"go\">False</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">errors</span>\n<span class=\"go\">{}</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"initial-form-values\">\n<span id=\"ref-forms-initial-form-values\"></span><h2>フォームの初期値<a class=\"heading-anchor\" href=\"#initial-form-values\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.initial\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">initial</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.initial\"><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.Form.initial\" title=\"django.forms.Form.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">initial</span></code></a> を使うことで、実行時にフォームの初期値を設定できます。たとえば、 <code class=\"docutils literal notranslate\"><span class=\"pre\">username</span></code> フォームを埋めるのに、現在のセッションの username を使うことができます。</p>\n<p>これを実現するには、 <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> の初期化時に <a class=\"reference internal\" href=\"#django.forms.Form.initial\" title=\"django.forms.Form.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">initial</span></code></a> 引数を使用します。この引数には、フィールド名と初期値のマッピングした辞書を指定します。初期値を指定するフィールドだけを含めればよく、フォーム内のすべてのフィールドを含める必要はありません。以下に例を示します。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there!&quot;</span><span class=\"p\">})</span>\n</code></pre></div>\n<p>これらの値はバインドされていないフォームに表示されるだけです。値が入力されなかった場合の、フォールバックされる値として使われることはありません。</p>\n<p><a class=\"reference internal\" href=\"/ja/5.0/ref/forms/fields/#django.forms.Field\" title=\"django.forms.Field\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Field</span></code></a> において <a class=\"reference internal\" href=\"/ja/5.0/ref/forms/fields/#django.forms.Field.initial\" title=\"django.forms.Field.initial\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">initial</span></code></a> を定義 <em>した上で</em> <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> をインスタンス化するときに <a class=\"reference internal\" href=\"#django.forms.Form.initial\" title=\"django.forms.Form.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">initial</span></code></a> を指定した場合、後者の <code class=\"docutils literal notranslate\"><span class=\"pre\">initial</span></code> が優先されます。以下の例では、フィールドレベルとフォームインスタンスレベルの両方で <code class=\"docutils literal notranslate\"><span class=\"pre\">initial</span></code> が提供され、後者が優先されます。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">CommentForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"s2\">&quot;class&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span>    <span class=\"n\">url</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">URLField</span><span class=\"p\">()</span>\n<span class=\"gp\">... </span>    <span class=\"n\">comment</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">CommentForm</span><span class=\"p\">(</span><span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;instance&quot;</span><span class=\"p\">},</span> <span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;Name:&lt;input type=&quot;text&quot; name=&quot;name&quot; value=&quot;instance&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Url:&lt;input type=&quot;url&quot; name=&quot;url&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Comment:&lt;input type=&quot;text&quot; name=&quot;comment&quot; required&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.get_initial_for_field\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_initial_for_field</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field_name</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.get_initial_for_field\"><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.Form.initial\" title=\"django.forms.Form.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.initial</span></code></a> から取得し、それ以外の場合は <a class=\"reference internal\" href=\"/ja/5.0/ref/forms/fields/#django.forms.Field.initial\" title=\"django.forms.Field.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Field.initial</span></code></a> を参照します。呼び出し可能な値は評価されます。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField.initial</span></code> はよりシンプルなインターフェースを持っているため、<a class=\"reference internal\" href=\"#django.forms.Form.get_initial_for_field\" title=\"django.forms.Form.get_initial_for_field\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_initial_for_field()</span></code></a> よりも <a class=\"reference internal\" href=\"#django.forms.BoundField.initial\" title=\"django.forms.BoundField.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.initial</span></code></a> の使用が推奨されます。また、<a class=\"reference internal\" href=\"#django.forms.Form.get_initial_for_field\" title=\"django.forms.Form.get_initial_for_field\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_initial_for_field()</span></code></a> とは異なり、<a class=\"reference internal\" href=\"#django.forms.BoundField.initial\" title=\"django.forms.BoundField.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.initial</span></code></a> はその値をキャッシュします。これは、戻り値が変わる可能性がある呼び出し可能オブジェクト (例: <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.now</span></code> や <code class=\"docutils literal notranslate\"><span class=\"pre\">uuid.uuid4</span></code>) を扱う場合に特に便利です。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">uuid</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">UUIDCommentForm</span><span class=\"p\">(</span><span class=\"n\">CommentForm</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">identifier</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">UUIDField</span><span class=\"p\">(</span><span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"n\">uuid</span><span class=\"o\">.</span><span class=\"n\">uuid4</span><span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">UUIDCommentForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">get_initial_for_field</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">fields</span><span class=\"p\">[</span><span class=\"s2\">&quot;identifier&quot;</span><span class=\"p\">],</span> <span class=\"s2\">&quot;identifier&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">UUID(&#39;972ca9e4-7bfe-4f5b-af7d-07b3aa306334&#39;)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">get_initial_for_field</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">fields</span><span class=\"p\">[</span><span class=\"s2\">&quot;identifier&quot;</span><span class=\"p\">],</span> <span class=\"s2\">&quot;identifier&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">UUID(&#39;1b411fab-844e-4dec-bd4f-e9b0495f04d0&#39;)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"c1\"># Using BoundField.initial, for comparison</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;identifier&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">initial</span>\n<span class=\"go\">UUID(&#39;28a09c59-5f00-4ed9-9179-a3b074fa9c30&#39;)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;identifier&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">initial</span>\n<span class=\"go\">UUID(&#39;28a09c59-5f00-4ed9-9179-a3b074fa9c30&#39;)</span>\n</code></pre></div>\n</section>\n<section id=\"checking-which-form-data-has-changed\">\n<h2>どのフォームデータが変更されたかをチェックする<a class=\"heading-anchor\" href=\"#checking-which-form-data-has-changed\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.has_changed\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_changed</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.has_changed\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>フォームデータが初期値から変更されたかどうかをチェックしたい場合は、 <code class=\"docutils literal notranslate\"><span class=\"pre\">has_changed()</span></code> メソッドを使います。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;hello&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;sender&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo@example.com&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;cc_myself&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">has_changed</span><span class=\"p\">()</span>\n<span class=\"go\">False</span>\n</code></pre></div>\n<p>フォームが送信された場合、比較ができるようにフォームを再構築して元のデータを提供します:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">POST</span><span class=\"p\">,</span> <span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">has_changed</span><span class=\"p\">()</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">has_changed()</span></code> は、 <code class=\"docutils literal notranslate\"><span class=\"pre\">request.POST</span></code> が <a class=\"reference internal\" href=\"#django.forms.Form.initial\" title=\"django.forms.Form.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">initial</span></code></a> で提供されたデータと異なる場合、 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> を返し、同じであれば <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> を返します。この結果は、それぞれのフィールドで <a class=\"reference internal\" href=\"/ja/5.0/ref/forms/fields/#django.forms.Field.has_changed\" title=\"django.forms.Field.has_changed\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Field.has_changed()</span></code></a> を呼ぶことで計算されます。</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.changed_data\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">changed_data</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.changed_data\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">changed_data</span></code> 属性は、フォームにバインドされたデータ (ふつうは <code class=\"docutils literal notranslate\"><span class=\"pre\">request.POST</span></code>) の値が <a class=\"reference internal\" href=\"#django.forms.Form.initial\" title=\"django.forms.Form.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">initial</span></code></a> で提供されたものと異なるとき、そのフィールド名のリストを返します。データが変更されていない場合は、空のリストを返します。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">POST</span><span class=\"p\">,</span> <span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">if</span> <span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">has_changed</span><span class=\"p\">():</span>\n<span class=\"gp\">... </span>    <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"s2\">&quot;The following fields changed: </span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span> <span class=\"o\">%</span> <span class=\"s2\">&quot;, &quot;</span><span class=\"o\">.</span><span class=\"n\">join</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">changed_data</span><span class=\"p\">))</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">changed_data</span>\n<span class=\"go\">[&#39;subject&#39;, &#39;message&#39;]</span>\n</code></pre></div>\n</section>\n<section id=\"accessing-the-fields-from-the-form\">\n<h2>フォームからフィールドにアクセスする<a class=\"heading-anchor\" href=\"#accessing-the-fields-from-the-form\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">fields</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.fields\"><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.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> インスタンスのフィールドには、その <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> 属性からアクセスできます。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">for</span> <span class=\"n\">row</span> <span class=\"ow\">in</span> <span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">fields</span><span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">():</span>\n<span class=\"gp\">... </span>    <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">row</span><span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"go\">&lt;django.forms.fields.CharField object at 0x7ffaac632510&gt;</span>\n<span class=\"go\">&lt;django.forms.fields.URLField object at 0x7ffaac632f90&gt;</span>\n<span class=\"go\">&lt;django.forms.fields.CharField object at 0x7ffaac3aa050&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">fields</span><span class=\"p\">[</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">]</span>\n<span class=\"go\">&lt;django.forms.fields.CharField object at 0x7ffaac6324d0&gt;</span>\n</code></pre></div>\n<p>フィールドと <a class=\"reference internal\" href=\"#django.forms.BoundField\" title=\"django.forms.BoundField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BoundField</span></code></a> 、 <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> インスタンスを変更することで、フォーム内でのフィールドの表示方法を変更できます。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">as_div</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">split</span><span class=\"p\">(</span><span class=\"s2\">&quot;&lt;/div&gt;&quot;</span><span class=\"p\">)[</span><span class=\"mi\">0</span><span class=\"p\">]</span>\n<span class=\"go\">&#39;&lt;div&gt;&lt;label for=&quot;id_subject&quot;&gt;Subject:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required id=&quot;id_subject&quot;&gt;&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">label</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;Topic&quot;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">as_div</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">split</span><span class=\"p\">(</span><span class=\"s2\">&quot;&lt;/div&gt;&quot;</span><span class=\"p\">)[</span><span class=\"mi\">0</span><span class=\"p\">]</span>\n<span class=\"go\">&#39;&lt;div&gt;&lt;label for=&quot;id_subject&quot;&gt;Topic:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required id=&quot;id_subject&quot;&gt;&#39;</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">base_fields</span></code> 属性を変更しないように注意してください。この変更は、同じPythonプロセス内のすべての後続の <code class=\"docutils literal notranslate\"><span class=\"pre\">ContactForm</span></code> インスタンスに影響を与えます。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">base_fields</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">label_suffix</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;?&quot;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">another_f</span> <span class=\"o\">=</span> <span class=\"n\">CommentForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">as_div</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">split</span><span class=\"p\">(</span><span class=\"s2\">&quot;&lt;/div&gt;&quot;</span><span class=\"p\">)[</span><span class=\"mi\">0</span><span class=\"p\">]</span>\n<span class=\"go\">&#39;&lt;div&gt;&lt;label for=&quot;id_subject&quot;&gt;Subject?&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required id=&quot;id_subject&quot;&gt;&#39;</span>\n</code></pre></div>\n</section>\n<section id=\"accessing-clean-data\">\n<h2>&quot;clean&quot; なデータにアクセスする<a class=\"heading-anchor\" href=\"#accessing-clean-data\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.cleaned_data\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">cleaned_data</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.cleaned_data\"><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.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> クラスの各フィールドは、データの検証だけでなく、それを「クリーニング」する – すなわち、データを一貫した形式に正規化する役割も担っています。これは素晴らしい機能で、各フィールドにおいて、様々な形式で入力されるデータから、常に整合性のある出力を得ることができます。</p>\n<p>たとえば、 <a class=\"reference internal\" href=\"/ja/5.0/ref/forms/fields/#django.forms.DateField\" title=\"django.forms.DateField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateField</span></code></a> はインプットを Python の <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.date</span></code> オブジェクトに正規化します。たとえ <code class=\"docutils literal notranslate\"><span class=\"pre\">'1994-07-15'</span></code> という形式の文字列で渡そうが、 <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.date</span></code> オブジェクトを渡そうが、他の様々な形式で渡そうが、それが検証にパスする限り <code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code> はいつも <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.date</span></code> オブジェクトに正規化します。</p>\n<p><a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> インスタンスを作成し、データをセットして検証した後は、<code class=\"docutils literal notranslate\"><span class=\"pre\">cleaned_data</span></code> 属性を介してクリーンなデータにアクセスできます。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;hello&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;sender&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo@example.com&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;cc_myself&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_valid</span><span class=\"p\">()</span>\n<span class=\"go\">True</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">cleaned_data</span>\n<span class=\"go\">{&#39;cc_myself&#39;: True, &#39;message&#39;: &#39;Hi there&#39;, &#39;sender&#39;: &#39;foo@example.com&#39;, &#39;subject&#39;: &#39;hello&#39;}</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">CharField</span></code> や <code class=\"docutils literal notranslate\"><span class=\"pre\">EmailField</span></code> といったテキストベースのフィールドは、入力を文字列に正規化します。暗黙的な文字エンコードの動作については、後のドキュメントでカバーします。</p>\n<p>もしデータが検証に合格 <em>しなかった</em> 場合、 <code class=\"docutils literal notranslate\"><span class=\"pre\">cleaned_data</span></code> の辞書には有効なフィールドのみが含まれます。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;sender&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;invalid email address&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;cc_myself&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_valid</span><span class=\"p\">()</span>\n<span class=\"go\">False</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">cleaned_data</span>\n<span class=\"go\">{&#39;cc_myself&#39;: True, &#39;message&#39;: &#39;Hi there&#39;}</span>\n</code></pre></div>\n<p>たとえ <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> を定義する際に追加のデータを渡しても、 <code class=\"docutils literal notranslate\"><span class=\"pre\">cleaned_data</span></code> には <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> で定義されたフィールドのキー <em>のみ</em> が含まれます。この例では <code class=\"docutils literal notranslate\"><span class=\"pre\">ContactForm</span></code> のコンストラクタに追加のフィールドを渡していますが、 <code class=\"docutils literal notranslate\"><span class=\"pre\">cleaned_data</span></code> にはフォームのフィールドのみが含まれます。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;hello&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;sender&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo@example.com&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;cc_myself&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;extra_field_1&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;extra_field_2&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;bar&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;extra_field_3&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;baz&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_valid</span><span class=\"p\">()</span>\n<span class=\"go\">True</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">cleaned_data</span>  <span class=\"c1\"># Doesn&#39;t contain extra_field_1, etc.</span>\n<span class=\"go\">{&#39;cc_myself&#39;: True, &#39;message&#39;: &#39;Hi there&#39;, &#39;sender&#39;: &#39;foo@example.com&#39;, &#39;subject&#39;: &#39;hello&#39;}</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> の検証に合格した場合、 任意入力のフィールドのデータが一部含まれていなかったとしても、 <em>すべての</em> フィールドのキーと値が含まれています。この例では、渡したデータに <code class=\"docutils literal notranslate\"><span class=\"pre\">nick_name</span></code> フィールドの値は含まれていませんが、 <code class=\"docutils literal notranslate\"><span class=\"pre\">cleaned_data</span></code> には空の値が含まれています。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">OptionalPersonForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">first_name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">... </span>    <span class=\"n\">last_name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">... </span>    <span class=\"n\">nick_name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">required</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;first_name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;John&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;last_name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Lennon&quot;</span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">OptionalPersonForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_valid</span><span class=\"p\">()</span>\n<span class=\"go\">True</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">cleaned_data</span>\n<span class=\"go\">{&#39;nick_name&#39;: &#39;&#39;, &#39;first_name&#39;: &#39;John&#39;, &#39;last_name&#39;: &#39;Lennon&#39;}</span>\n</code></pre></div>\n<p>上の例では、 <code class=\"docutils literal notranslate\"><span class=\"pre\">cleaned_data</span></code> 中の <code class=\"docutils literal notranslate\"><span class=\"pre\">nick_name</span></code> の値には空の文字列がセットされています。これは、 <code class=\"docutils literal notranslate\"><span class=\"pre\">nick_name</span></code> が <code class=\"docutils literal notranslate\"><span class=\"pre\">CharField</span></code> であり、 <code class=\"docutils literal notranslate\"><span class=\"pre\">CharField</span></code> は空の値を空の文字列として扱うからです。それぞれのフィールドタイプは、それぞれの <code class=\"docutils literal notranslate\"><span class=\"pre\">空の</span></code> 値が何であるか知っています -- たとえば、 <code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code> では空の文字列の代わりに <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> です。それぞれのフィールドの挙動の完全な詳細は、あとの &quot;Built-in <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> classes&quot; セクションにある &quot;Empty value&quot; ノートを見てください。</p>\n<p>特定のいくつかの (フォーム名に基づく) フォームフィールドまたは (さまざまなフィールドの組み合わせを考えて) フォーム全体に対してのバリデーションを行うコードを書くこともできます。これについての詳細は、 <a class=\"reference internal\" href=\"/ja/5.0/ref/forms/validation/\"><span class=\"doc\">フォームとフィールドのバリデーション</span></a> を見てください。</p>\n</section>\n<section id=\"outputting-forms-as-html\">\n<span id=\"ref-forms-api-outputting-html\"></span><h2>フォームをHTMLとしてアウトプットする<a class=\"heading-anchor\" href=\"#outputting-forms-as-html\"><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\">Form</span></code> オブジェクトの2番目のタスクは、自身をHTMLとしてレンダリングすることです。それを行うには <code class=\"docutils literal notranslate\"><span class=\"pre\">print</span></code> します。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_subject&quot;&gt;Subject:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required id=&quot;id_subject&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_message&quot;&gt;Message:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;message&quot; required id=&quot;id_message&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_sender&quot;&gt;Sender:&lt;/label&gt;&lt;input type=&quot;email&quot; name=&quot;sender&quot; required id=&quot;id_sender&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_cc_myself&quot;&gt;Cc myself:&lt;/label&gt;&lt;input type=&quot;checkbox&quot; name=&quot;cc_myself&quot; id=&quot;id_cc_myself&quot;&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>フォームがデータにバインドされている場合、HTMLの出力にはそのデータが適切に含まれます。たとえば、フィールドが <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;text&quot;&gt;</span></code> で表される場合、データは <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 属性に含まれます。フィールドが <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;checkbox&quot;&gt;</span></code> で表される場合、HTMLには必要に応じて <code class=\"docutils literal notranslate\"><span class=\"pre\">checked</span></code> が含まれます。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;hello&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;sender&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo@example.com&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;cc_myself&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_subject&quot;&gt;Subject:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;subject&quot; value=&quot;hello&quot; maxlength=&quot;100&quot; required id=&quot;id_subject&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_message&quot;&gt;Message:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;message&quot; value=&quot;Hi there&quot; required id=&quot;id_message&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_sender&quot;&gt;Sender:&lt;/label&gt;&lt;input type=&quot;email&quot; name=&quot;sender&quot; value=&quot;foo@example.com&quot; required id=&quot;id_sender&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_cc_myself&quot;&gt;Cc myself:&lt;/label&gt;&lt;input type=&quot;checkbox&quot; name=&quot;cc_myself&quot; id=&quot;id_cc_myself&quot; checked&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>このデフォルトの出力は、各フィールドを <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;div&gt;</span></code> で囲みます。以下の点に注意してください。</p>\n<ul class=\"simple\">\n<li><p>柔軟性のために、出力には <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;form&gt;</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;/form&gt;</span></code> のタグや <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;submit&quot;&gt;</span></code> のタグは含まれていません。これらは各自で追加するようにしてください。</p></li>\n<li><p>それぞれのフィールドタイプはデフォルトの HTML 表現を持っています。 <code class=\"docutils literal notranslate\"><span class=\"pre\">CharField</span></code> は <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;text&quot;&gt;</span></code> で、 <code class=\"docutils literal notranslate\"><span class=\"pre\">EmailField</span></code> は <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;email&quot;&gt;</span></code> で表現され、<code class=\"docutils literal notranslate\"><span class=\"pre\">BooleanField(null=False)</span></code> は <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;checkbox&quot;&gt;</span></code> で表現されます。これらは単なる実用的なデフォルトであり、あるフィールドにどの HTML を使うかは、すぐ後で説明するウィジェットを使って指定できます。</p></li>\n<li><p>HTML のそれぞれのタグの <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> は、 <code class=\"docutils literal notranslate\"><span class=\"pre\">ContactForm</span></code> クラスの属性名から直接とられます。</p></li>\n<li><p>それぞれのフィールドのテキストラベル、たとえば <code class=\"docutils literal notranslate\"><span class=\"pre\">'Subject:'</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">'Message:'</span></code> , <code class=\"docutils literal notranslate\"><span class=\"pre\">'Cc</span> <span class=\"pre\">myself:'</span></code> は、フィールド名のアンダースコアをスペースに変換し、頭文字を大文字に変換して生成されます。これらもまた単なる実用的なデフォルトです; 手動でラベルを指定することもできます。</p></li>\n<li><p>それぞれのテキストラベルは HTML <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> タグで囲まれており、 <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> を通して適切なフォームフィールドを指しています。<code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> は、フィールド名に <code class=\"docutils literal notranslate\"><span class=\"pre\">'id_'</span></code> を前置することで生成されます。<code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> 属性と <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> タグは、ベストプラクティスに従ってデフォルトでアウトプットにインクルードされますが、この挙動も変更できます。</p></li>\n<li><p>出力はHTML5の構文を使用し、 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;!DOCTYPE</span> <span class=\"pre\">html&gt;</span></code> をターゲットにしています。例えば、 <code class=\"docutils literal notranslate\"><span class=\"pre\">checked='checked'</span></code> のXHTMLスタイルではなく <code class=\"docutils literal notranslate\"><span class=\"pre\">checked</span></code> のようなブール属性を使用します。</p></li>\n</ul>\n<p>フォームを <code class=\"docutils literal notranslate\"><span class=\"pre\">print</span></code> するときは <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;div&gt;</span></code> がデフォルトの出力スタイルですが、独自のフォームテンプレートを使用して、出力をカスタマイズできます。このテンプレートは、サイト全体、フォームごと、またはインスタンスごとに設定できます。詳細は、 <a class=\"reference internal\" href=\"/ja/5.0/topics/forms/#reusable-form-templates\"><span class=\"std std-ref\">再利用可能なフォームテンプレート</span></a> を参照してください。</p>\n<section id=\"default-rendering\">\n<h3>デフォルトのレンダリング<a class=\"heading-anchor\" href=\"#default-rendering\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>フォームを <code class=\"docutils literal notranslate\"><span class=\"pre\">print</span></code> するときのデフォルトのレンダリングでは、次のメソッドと属性が使用されます。</p>\n<section id=\"template-name\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code><a class=\"heading-anchor\" href=\"#template-name\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.template_name\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">template_name</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>フォームを文字列に変換するときにレンダリングされるテンプレートの名前です。例えば、 <code class=\"docutils literal notranslate\"><span class=\"pre\">print(form)</span></code> やテンプレート内の <code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">form</span> <span class=\"pre\">}}</span></code> などで使用されます。</p>\n<p>デフォルトでは、レンダラーの <a class=\"reference internal\" href=\"/ja/5.0/ref/forms/renderers/#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</section>\n<section id=\"render\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">render()</span></code><a class=\"heading-anchor\" href=\"#render\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.render\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><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><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">context</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">renderer</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.Form.render\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>renderメソッドは、 <code class=\"docutils literal notranslate\"><span class=\"pre\">__str__</span></code> だけでなく、 <a class=\"reference internal\" href=\"#django.forms.Form.as_div\" title=\"django.forms.Form.as_div\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.as_div()</span></code></a> 、 <a class=\"reference internal\" href=\"#django.forms.Form.as_table\" title=\"django.forms.Form.as_table\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.as_table()</span></code></a> 、 <a class=\"reference internal\" href=\"#django.forms.Form.as_p\" title=\"django.forms.Form.as_p\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.as_p()</span></code></a> 、および <a class=\"reference internal\" href=\"#django.forms.Form.as_ul\" title=\"django.forms.Form.as_ul\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">Form.as_ul()</span></code></a> メソッドによって呼び出されます。すべての引数はオプションであり、デフォルトは次のとおりです。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <a class=\"reference internal\" href=\"#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></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">context</span></code>: <a class=\"reference internal\" href=\"#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></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">renderer</span></code>: <a class=\"reference internal\" href=\"#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> が返す値</p></li>\n</ul>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code> を渡すことで、単一の呼び出しに使用されるテンプレートをカスタマイズできます。</p>\n</section>\n<section id=\"get-context\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">get_context()</span></code><a class=\"heading-anchor\" href=\"#get-context\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.get_context\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_context</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.get_context\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>テンプレートをレンダリングするためのコンテキストを返します。</p>\n<p>利用可能なコンテキストは次のとおりです。</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=\"template-name-label\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name_label</span></code><a class=\"heading-anchor\" href=\"#template-name-label\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.template_name_label\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">template_name_label</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.template_name_label\"><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.BoundField.label_tag\" title=\"django.forms.BoundField.label_tag\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">BoundField.label_tag()</span></code></a>/<a class=\"reference internal\" href=\"#django.forms.BoundField.legend_tag\" title=\"django.forms.BoundField.legend_tag\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">legend_tag()</span></code></a> を呼び出す際に使用されるフィールドの <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> をレンダリングするために使用されます。この属性をオーバーライドするか、デフォルトのテンプレートをオーバーライドすることで、フォームごとに変更できます。詳細については、 <a class=\"reference internal\" href=\"/ja/5.0/ref/forms/renderers/#overriding-built-in-form-templates\"><span class=\"std std-ref\">組み込みのフォームテンプレートをオーバーライドする</span></a> も参照してください。</p>\n</section>\n</section>\n<section id=\"output-styles\">\n<h3>出力スタイル<a class=\"heading-anchor\" href=\"#output-styles\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>フォームの出力スタイルを変更する推奨されるアプローチは、サイト全体、フォームごと、またはインスタンスごとにカスタムフォームテンプレートを設定することです。例については、 <a class=\"reference internal\" href=\"/ja/5.0/topics/forms/#reusable-form-templates\"><span class=\"std std-ref\">再利用可能なフォームテンプレート</span></a> を参照してください。</p>\n<p>以下のヘルパー関数は後方互換性のために提供され、特定の <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code> 値を渡す <a class=\"reference internal\" href=\"#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> へのプロキシです。</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">注釈</p>\n<p>フレームワークが提供するテンプレートと出力スタイルのうち、デフォルトの <code class=\"docutils literal notranslate\"><span class=\"pre\">as_div()</span></code> は <code class=\"docutils literal notranslate\"><span class=\"pre\">as_p()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">as_table()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">as_ul()</span></code> バージョンよりも推奨されます。なぜなら、このテンプレートは <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;fieldset&gt;</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;legend&gt;</span></code> を実装しており、関連する入力をグループ化し、スクリーンリーダーユーザがナビゲートしやすいからです。</p>\n</aside>\n<p>各ヘルパーは、適切なテンプレート名を指定する属性とフォームメソッドをペアにします。</p>\n<section id=\"as-div\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">as_div()</span></code><a class=\"heading-anchor\" href=\"#as-div\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.template_name_div\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">template_name_div</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.template_name_div\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">as_div()</span></code> に使用されるテンプレート。デフォルト: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/div.html'</span></code>。</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.as_div\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">as_div</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.as_div\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">as_div()</span></code> はフォームを一連の <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;div&gt;</span></code> 要素としてレンダリングし、各 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;div&gt;</span></code> には以下のように一つのフィールドを含みます</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">as_div</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>… これは次のようなHTMLを生成します:</p>\n<div class=\"code-block\" data-language=\"html\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Html</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=\"Html code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_subject&quot;</span><span class=\"p\">&gt;</span>Subject:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">input</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;text&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;subject&quot;</span> <span class=\"na\">maxlength</span><span class=\"o\">=</span><span class=\"s\">&quot;100&quot;</span> <span class=\"na\">required</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_subject&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_message&quot;</span><span class=\"p\">&gt;</span>Message:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">input</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;text&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;message&quot;</span> <span class=\"na\">required</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_message&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_sender&quot;</span><span class=\"p\">&gt;</span>Sender:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">input</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;email&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;sender&quot;</span> <span class=\"na\">required</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_sender&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;id_cc_myself&quot;</span><span class=\"p\">&gt;</span>Cc myself:<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">input</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;checkbox&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;cc_myself&quot;</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_cc_myself&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"as-p\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">as_p()</span></code><a class=\"heading-anchor\" href=\"#as-p\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.template_name_p\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">template_name_p</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.template_name_p\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">as_p()</span></code> に使われるテンプレート。デフォルト: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/p.html'</span></code> 。</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.as_p\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">as_p</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.as_p\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">as_p()</span></code> は、フォームを一連の <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;p&gt;</span></code> タグとしてレンダリングし、各 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;p&gt;</span></code> は1つのフィールドを含みます。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">as_p</span><span class=\"p\">()</span>\n<span class=\"go\">&#39;&lt;p&gt;&lt;label for=&quot;id_subject&quot;&gt;Subject:&lt;/label&gt; &lt;input id=&quot;id_subject&quot; type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required&gt;&lt;/p&gt;\\n&lt;p&gt;&lt;label for=&quot;id_message&quot;&gt;Message:&lt;/label&gt; &lt;input type=&quot;text&quot; name=&quot;message&quot; id=&quot;id_message&quot; required&gt;&lt;/p&gt;\\n&lt;p&gt;&lt;label for=&quot;id_sender&quot;&gt;Sender:&lt;/label&gt; &lt;input type=&quot;text&quot; name=&quot;sender&quot; id=&quot;id_sender&quot; required&gt;&lt;/p&gt;\\n&lt;p&gt;&lt;label for=&quot;id_cc_myself&quot;&gt;Cc myself:&lt;/label&gt; &lt;input type=&quot;checkbox&quot; name=&quot;cc_myself&quot; id=&quot;id_cc_myself&quot;&gt;&lt;/p&gt;&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">as_p</span><span class=\"p\">())</span>\n<span class=\"go\">&lt;p&gt;&lt;label for=&quot;id_subject&quot;&gt;Subject:&lt;/label&gt; &lt;input id=&quot;id_subject&quot; type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required&gt;&lt;/p&gt;</span>\n<span class=\"go\">&lt;p&gt;&lt;label for=&quot;id_message&quot;&gt;Message:&lt;/label&gt; &lt;input type=&quot;text&quot; name=&quot;message&quot; id=&quot;id_message&quot; required&gt;&lt;/p&gt;</span>\n<span class=\"go\">&lt;p&gt;&lt;label for=&quot;id_sender&quot;&gt;Sender:&lt;/label&gt; &lt;input type=&quot;email&quot; name=&quot;sender&quot; id=&quot;id_sender&quot; required&gt;&lt;/p&gt;</span>\n<span class=\"go\">&lt;p&gt;&lt;label for=&quot;id_cc_myself&quot;&gt;Cc myself:&lt;/label&gt; &lt;input type=&quot;checkbox&quot; name=&quot;cc_myself&quot; id=&quot;id_cc_myself&quot;&gt;&lt;/p&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"as-ul\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">as_ul()</span></code><a class=\"heading-anchor\" href=\"#as-ul\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.template_name_ul\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">template_name_ul</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.template_name_ul\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">as_ul()</span></code> によって使用されるテンプレート。デフォルト: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/ul.html'</span></code> 。</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.as_ul\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">as_ul</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.as_ul\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">as_ul()</span></code> は、フォームを一連の <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;li&gt;</span></code> タグとしてレンダリングし、各 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;li&gt;</span></code> には一つのフィールドが含まれます。柔軟性のために、<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;ul&gt;</span></code> に任意のHTML属性を指定できるように、 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;ul&gt;</span></code> や <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;/ul&gt;</span></code> は含まれ <em>ません</em> 。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">as_ul</span><span class=\"p\">()</span>\n<span class=\"go\">&#39;&lt;li&gt;&lt;label for=&quot;id_subject&quot;&gt;Subject:&lt;/label&gt; &lt;input id=&quot;id_subject&quot; type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required&gt;&lt;/li&gt;\\n&lt;li&gt;&lt;label for=&quot;id_message&quot;&gt;Message:&lt;/label&gt; &lt;input type=&quot;text&quot; name=&quot;message&quot; id=&quot;id_message&quot; required&gt;&lt;/li&gt;\\n&lt;li&gt;&lt;label for=&quot;id_sender&quot;&gt;Sender:&lt;/label&gt; &lt;input type=&quot;email&quot; name=&quot;sender&quot; id=&quot;id_sender&quot; required&gt;&lt;/li&gt;\\n&lt;li&gt;&lt;label for=&quot;id_cc_myself&quot;&gt;Cc myself:&lt;/label&gt; &lt;input type=&quot;checkbox&quot; name=&quot;cc_myself&quot; id=&quot;id_cc_myself&quot;&gt;&lt;/li&gt;&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">as_ul</span><span class=\"p\">())</span>\n<span class=\"go\">&lt;li&gt;&lt;label for=&quot;id_subject&quot;&gt;Subject:&lt;/label&gt; &lt;input id=&quot;id_subject&quot; type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required&gt;&lt;/li&gt;</span>\n<span class=\"go\">&lt;li&gt;&lt;label for=&quot;id_message&quot;&gt;Message:&lt;/label&gt; &lt;input type=&quot;text&quot; name=&quot;message&quot; id=&quot;id_message&quot; required&gt;&lt;/li&gt;</span>\n<span class=\"go\">&lt;li&gt;&lt;label for=&quot;id_sender&quot;&gt;Sender:&lt;/label&gt; &lt;input type=&quot;email&quot; name=&quot;sender&quot; id=&quot;id_sender&quot; required&gt;&lt;/li&gt;</span>\n<span class=\"go\">&lt;li&gt;&lt;label for=&quot;id_cc_myself&quot;&gt;Cc myself:&lt;/label&gt; &lt;input type=&quot;checkbox&quot; name=&quot;cc_myself&quot; id=&quot;id_cc_myself&quot;&gt;&lt;/li&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"as-table\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">as_table()</span></code><a class=\"heading-anchor\" href=\"#as-table\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.template_name_table\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">template_name_table</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.template_name_table\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">as_table()</span></code> によって使用されるテンプレート。デフォルト: <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/table.html'</span></code> 。</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.as_table\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">as_table</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.as_table\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">as_table()</span></code> はフォームを HTML の <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;table&gt;</span></code> としてレンダリングします:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">as_table</span><span class=\"p\">()</span>\n<span class=\"go\">&#39;&lt;tr&gt;&lt;th&gt;&lt;label for=&quot;id_subject&quot;&gt;Subject:&lt;/label&gt;&lt;/th&gt;&lt;td&gt;&lt;input id=&quot;id_subject&quot; type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required&gt;&lt;/td&gt;&lt;/tr&gt;\\n&lt;tr&gt;&lt;th&gt;&lt;label for=&quot;id_message&quot;&gt;Message:&lt;/label&gt;&lt;/th&gt;&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;message&quot; id=&quot;id_message&quot; required&gt;&lt;/td&gt;&lt;/tr&gt;\\n&lt;tr&gt;&lt;th&gt;&lt;label for=&quot;id_sender&quot;&gt;Sender:&lt;/label&gt;&lt;/th&gt;&lt;td&gt;&lt;input type=&quot;email&quot; name=&quot;sender&quot; id=&quot;id_sender&quot; required&gt;&lt;/td&gt;&lt;/tr&gt;\\n&lt;tr&gt;&lt;th&gt;&lt;label for=&quot;id_cc_myself&quot;&gt;Cc myself:&lt;/label&gt;&lt;/th&gt;&lt;td&gt;&lt;input type=&quot;checkbox&quot; name=&quot;cc_myself&quot; id=&quot;id_cc_myself&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;tr&gt;&lt;th&gt;&lt;label for=&quot;id_subject&quot;&gt;Subject:&lt;/label&gt;&lt;/th&gt;&lt;td&gt;&lt;input id=&quot;id_subject&quot; type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required&gt;&lt;/td&gt;&lt;/tr&gt;</span>\n<span class=\"go\">&lt;tr&gt;&lt;th&gt;&lt;label for=&quot;id_message&quot;&gt;Message:&lt;/label&gt;&lt;/th&gt;&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;message&quot; id=&quot;id_message&quot; required&gt;&lt;/td&gt;&lt;/tr&gt;</span>\n<span class=\"go\">&lt;tr&gt;&lt;th&gt;&lt;label for=&quot;id_sender&quot;&gt;Sender:&lt;/label&gt;&lt;/th&gt;&lt;td&gt;&lt;input type=&quot;email&quot; name=&quot;sender&quot; id=&quot;id_sender&quot; required&gt;&lt;/td&gt;&lt;/tr&gt;</span>\n<span class=\"go\">&lt;tr&gt;&lt;th&gt;&lt;label for=&quot;id_cc_myself&quot;&gt;Cc myself:&lt;/label&gt;&lt;/th&gt;&lt;td&gt;&lt;input type=&quot;checkbox&quot; name=&quot;cc_myself&quot; id=&quot;id_cc_myself&quot;&gt;&lt;/td&gt;&lt;/tr&gt;</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"styling-required-or-erroneous-form-rows\">\n<span id=\"ref-forms-api-styling-form-rows\"></span><h3>必須フォームとエラーのあるフォームのスタイリング<a class=\"heading-anchor\" href=\"#styling-required-or-erroneous-form-rows\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.error_css_class\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">error_css_class</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.error_css_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.required_css_class\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">required_css_class</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.required_css_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>必須フォームやエラーのあるフォームの行を装飾するのはとても一般的です。たとえば、必須フォームの行は太字にしたり、エラーであれば赤色にしたくなることもあるでしょう。</p>\n<p><a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> クラスには、必須フォームやエラーのあるフォームに <code class=\"docutils literal notranslate\"><span class=\"pre\">class</span></code> 属性を追加するためのいくつかのフックを用意しています。具体的には、 <a class=\"reference internal\" href=\"#django.forms.Form.error_css_class\" title=\"django.forms.Form.error_css_class\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.error_css_class</span></code></a> 属性や <a class=\"reference internal\" href=\"#django.forms.Form.required_css_class\" title=\"django.forms.Form.required_css_class\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.required_css_class</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\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n    <span class=\"n\">error_css_class</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;error&quot;</span>\n    <span class=\"n\">required_css_class</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;required&quot;</span>\n\n    <span class=\"c1\"># ... and the rest of your fields here</span>\n</code></pre></div>\n<p>それを行ったら、必要に応じて行には <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;error&quot;</span></code> および/または <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;required&quot;</span></code> のクラスが与えられます。HTMLは以下のようになるでしょう:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div class=&quot;required&quot;&gt;&lt;label for=&quot;id_subject&quot; class=&quot;required&quot;&gt;Subject:&lt;/label&gt; ...</span>\n<span class=\"go\">&lt;div class=&quot;required&quot;&gt;&lt;label for=&quot;id_message&quot; class=&quot;required&quot;&gt;Message:&lt;/label&gt; ...</span>\n<span class=\"go\">&lt;div class=&quot;required&quot;&gt;&lt;label for=&quot;id_sender&quot; class=&quot;required&quot;&gt;Sender:&lt;/label&gt; ...</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_cc_myself&quot;&gt;Cc myself:&lt;/label&gt; ...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">label_tag</span><span class=\"p\">()</span>\n<span class=\"go\">&lt;label class=&quot;required&quot; for=&quot;id_subject&quot;&gt;Subject:&lt;/label&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">legend_tag</span><span class=\"p\">()</span>\n<span class=\"go\">&lt;legend class=&quot;required&quot; for=&quot;id_subject&quot;&gt;Subject:&lt;/legend&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">label_tag</span><span class=\"p\">(</span><span class=\"n\">attrs</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;class&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo&quot;</span><span class=\"p\">})</span>\n<span class=\"go\">&lt;label for=&quot;id_subject&quot; class=&quot;foo required&quot;&gt;Subject:&lt;/label&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">legend_tag</span><span class=\"p\">(</span><span class=\"n\">attrs</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;class&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo&quot;</span><span class=\"p\">})</span>\n<span class=\"go\">&lt;legend for=&quot;id_subject&quot; class=&quot;foo required&quot;&gt;Subject:&lt;/legend&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"configuring-form-elements-html-id-attributes-and-label-tags\">\n<span id=\"ref-forms-api-configuring-label\"></span><h3>フォーム要素の HTML <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> 属性と <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> タグを設定する<a class=\"heading-anchor\" href=\"#configuring-form-elements-html-id-attributes-and-label-tags\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.auto_id\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">auto_id</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.auto_id\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>デフォルトでは、フォームをレンダリングするメソッドは次のものを含みます:</p>\n<ul class=\"simple\">\n<li><p>フォーム要素に対する HTML <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> 属性。</p></li>\n<li><p>ラベルの前後に、フォームに対応する <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> タグ。 HTML の <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> タグは、どのラベルテキストがどのフォーム要素と関係しているかを指定します。この小さな修飾によって、補助的なデバイスでフォームにアクセスするのが便利になります。いつも <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> タグを使うようにするとよいでしょう。</p></li>\n</ul>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> 属性の値は、フォームフィールド名に <code class=\"docutils literal notranslate\"><span class=\"pre\">id_</span></code> を前置して生成されます。しかし、もし <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> 規約を変更したかったり、 HTML <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> 属性と <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> タグを完全に消し去りたいような場合は、この挙動は変更可能です。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> とラベルの挙動を制御するには、 <code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id</span></code> 引数を使います。この引数は、 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> か <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> か文字列でなければなりません。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id</span></code> が <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> の場合、フォームの出力には <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> タグや <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> 属性が含まれなくなります。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;Subject:&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Message:&lt;textarea name=&quot;message&quot; cols=&quot;40&quot; rows=&quot;10&quot; required&gt;&lt;/textarea&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Sender:&lt;input type=&quot;email&quot; name=&quot;sender&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Cc myself:&lt;input type=&quot;checkbox&quot; name=&quot;cc_myself&quot;&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id</span></code> が <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> に設定されている場合、フォームの出力には <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> タグが含まれ、各フォームフィールドの <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> としてフィールド名を使用します。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;subject&quot;&gt;Subject:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required id=&quot;subject&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;message&quot;&gt;Message:&lt;/label&gt;&lt;textarea name=&quot;message&quot; cols=&quot;40&quot; rows=&quot;10&quot; required id=&quot;message&quot;&gt;&lt;/textarea&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;sender&quot;&gt;Sender:&lt;/label&gt;&lt;input type=&quot;email&quot; name=&quot;sender&quot; required id=&quot;sender&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;cc_myself&quot;&gt;Cc myself:&lt;/label&gt;&lt;input type=&quot;checkbox&quot; name=&quot;cc_myself&quot; id=&quot;cc_myself&quot;&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id</span></code> が <code class=\"docutils literal notranslate\"><span class=\"pre\">'%s'</span></code> 形式の文字を含む文字列に設定されている場合、フォームの出力には <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> タグが含まれ、フォーマット文字列に基づいて <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> 属性が生成されます。例えば、フォーマット文字列が <code class=\"docutils literal notranslate\"><span class=\"pre\">'field_%s'</span></code> の場合、<code class=\"docutils literal notranslate\"><span class=\"pre\">subject</span></code> という名前のフィールドは <code class=\"docutils literal notranslate\"><span class=\"pre\">'field_subject'</span></code> という <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> 値を取得します。例を続けます:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"s2\">&quot;id_for_</span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_subject&quot;&gt;Subject:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required id=&quot;id_for_subject&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_message&quot;&gt;Message:&lt;/label&gt;&lt;textarea name=&quot;message&quot; cols=&quot;40&quot; rows=&quot;10&quot; required id=&quot;id_for_message&quot;&gt;&lt;/textarea&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_sender&quot;&gt;Sender:&lt;/label&gt;&lt;input type=&quot;email&quot; name=&quot;sender&quot; required id=&quot;id_for_sender&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_cc_myself&quot;&gt;Cc myself:&lt;/label&gt;&lt;input type=&quot;checkbox&quot; name=&quot;cc_myself&quot; id=&quot;id_for_cc_myself&quot;&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>もし、 <code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id</span></code> が (<code class=\"docutils literal notranslate\"><span class=\"pre\">%s</span></code> を含まない文字列のような) それ以外の真の値にセットされた場合、ライブラリは <code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id</span></code> が <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> の場合と同様に動作します。</p>\n<p>デフォルトでは、 <code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id</span></code> は文字列 <code class=\"docutils literal notranslate\"><span class=\"pre\">'id_%s'</span></code> がセットされています。</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.label_suffix\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">label_suffix</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.label_suffix\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>フォームをレンダリングする際、すべてのラベル名の後ろにつけられる翻訳可能な文字列の接尾語 (英語ではコロン (<code class=\"docutils literal notranslate\"><span class=\"pre\">:</span></code>) がデフォルト) です。</p>\n<p>その文字をカスタマイズしたり、完全に省略したりすることも、<code class=\"docutils literal notranslate\"><span class=\"pre\">label_suffix</span></code> パラメータを使用して可能です。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"s2\">&quot;id_for_</span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span><span class=\"p\">,</span> <span class=\"n\">label_suffix</span><span class=\"o\">=</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_subject&quot;&gt;Subject&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required id=&quot;id_for_subject&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_message&quot;&gt;Message&lt;/label&gt;&lt;textarea name=&quot;message&quot; cols=&quot;40&quot; rows=&quot;10&quot; required id=&quot;id_for_message&quot;&gt;&lt;/textarea&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_sender&quot;&gt;Sender&lt;/label&gt;&lt;input type=&quot;email&quot; name=&quot;sender&quot; required id=&quot;id_for_sender&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_cc_myself&quot;&gt;Cc myself&lt;/label&gt;&lt;input type=&quot;checkbox&quot; name=&quot;cc_myself&quot; id=&quot;id_for_cc_myself&quot;&gt;&lt;/div&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"s2\">&quot;id_for_</span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span><span class=\"p\">,</span> <span class=\"n\">label_suffix</span><span class=\"o\">=</span><span class=\"s2\">&quot; -&gt;&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_subject&quot;&gt;Subject -&amp;gt;&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required id=&quot;id_for_subject&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_message&quot;&gt;Message -&amp;gt;&lt;/label&gt;&lt;textarea name=&quot;message&quot; cols=&quot;40&quot; rows=&quot;10&quot; required id=&quot;id_for_message&quot;&gt;&lt;/textarea&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_sender&quot;&gt;Sender -&amp;gt;&lt;/label&gt;&lt;input type=&quot;email&quot; name=&quot;sender&quot; required id=&quot;id_for_sender&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_for_cc_myself&quot;&gt;Cc myself -&amp;gt;&lt;/label&gt;&lt;input type=&quot;checkbox&quot; name=&quot;cc_myself&quot; id=&quot;id_for_cc_myself&quot;&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>接尾文字列は、ラベルの最後の文字が句読文字 (英語では、 <code class=\"docutils literal notranslate\"><span class=\"pre\">.</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">!</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">?</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">:</span></code>) でない場合に限ってつけられます。</p>\n<p>フィールドはそれ自身の <a class=\"reference internal\" href=\"/ja/5.0/ref/forms/fields/#django.forms.Field.label_suffix\" title=\"django.forms.Field.label_suffix\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">label_suffix</span></code></a> を定義することもできます。これは <a class=\"reference internal\" href=\"#django.forms.Form.label_suffix\" title=\"django.forms.Form.label_suffix\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.label_suffix</span></code></a> よりも優先されます。また、 <code class=\"docutils literal notranslate\"><span class=\"pre\">label_suffix</span></code> パラメータを <a class=\"reference internal\" href=\"#django.forms.BoundField.label_tag\" title=\"django.forms.BoundField.label_tag\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">label_tag()</span></code></a> / <a class=\"reference internal\" href=\"#django.forms.BoundField.legend_tag\" title=\"django.forms.BoundField.legend_tag\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">legend_tag()</span></code></a> に使用することで、実行時に接尾辞を上書きすることもできます。</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.use_required_attribute\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">use_required_attribute</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.use_required_attribute\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> (デフォルト値) に設定した場合、必須フォームフィールドは HTMLの <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code> 属性を伴います。</p>\n<p><a class=\"reference internal\" href=\"/ja/5.0/topics/forms/formsets/\"><span class=\"doc\">Formsets</span></a> は、フォームセットにフォームを追加または削除したときのブラウザの誤検証を避けるため、 <code class=\"docutils literal notranslate\"><span class=\"pre\">use_required_attribute=False</span></code> としてフォームをインスタンス化します。</p>\n</section>\n<section id=\"configuring-the-rendering-of-a-form-s-widgets\">\n<h3>フォームウィジェットのレンダリングを設定する<a class=\"heading-anchor\" href=\"#configuring-the-rendering-of-a-form-s-widgets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.default_renderer\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">default_renderer</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.default_renderer\"><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.0/ref/forms/renderers/\"><span class=\"doc\">renderer</span></a> を指定します。デフォルトは <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> で、 <a class=\"reference internal\" href=\"/ja/5.0/ref/settings/#std-setting-FORM_RENDERER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FORM_RENDERER</span></code></a> 設定で指定されたデフォルトのレンダラーを使用することを意味します。</p>\n<p>これはクラスの属性としてフォーム定義の際に設定するもしくは、<code class=\"docutils literal notranslate\"><span class=\"pre\">Form.__init__()</span></code> に <code class=\"docutils literal notranslate\"><span class=\"pre\">renderer</span></code> 引数を使うことで設定します。たとえば:</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\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n    <span class=\"n\">default_renderer</span> <span class=\"o\">=</span> <span class=\"n\">MyRenderer</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>もしくは:</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=\"n\">form</span> <span class=\"o\">=</span> <span class=\"n\">MyForm</span><span class=\"p\">(</span><span class=\"n\">renderer</span><span class=\"o\">=</span><span class=\"n\">MyRenderer</span><span class=\"p\">())</span>\n</code></pre></div>\n</section>\n<section id=\"notes-on-field-ordering\">\n<h3>フィールドの順序に関する記述<a class=\"heading-anchor\" href=\"#notes-on-field-ordering\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">as_p()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">as_ul()</span></code>,  <code class=\"docutils literal notranslate\"><span class=\"pre\">as_table()</span></code> ショートカットでは、フィールドはフォームクラスで定義した順序で表示されます。たとえば、 <code class=\"docutils literal notranslate\"><span class=\"pre\">ContactForm</span></code> の例では、フィールドは <code class=\"docutils literal notranslate\"><span class=\"pre\">subject</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">message</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">sender</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">cc_myself</span></code> の順で定義されます。 HTML アウトプットの順序を変更するには、クラスの中で定義する順序を変えます。</p>\n<p>順序のカスタマイズには、ほかにもいくつかの方法があります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.field_order\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">field_order</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.field_order\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>デフォルトでは <code class=\"docutils literal notranslate\"><span class=\"pre\">Form.field_order=None</span></code> で、これはフォームクラスでフィールドを定義した順番を保持します。<code class=\"docutils literal notranslate\"><span class=\"pre\">field_order</span></code> がフィールド名のリストである場合、指定されたリストに従ってフィールドが順序付けられ、残りのフィールドはデフォルトの順序に従って追加されます。リスト内の未知のフィールド名は無視されます。これにより、サブクラスでフィールドを <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> に設定して無効にしても、順序を再定義する必要がなくなります。</p>\n<p><a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> に <code class=\"docutils literal notranslate\"><span class=\"pre\">Form.field_order</span></code> 引数を使うことで、フィールドの順序をオーバーライドすることもできます。 <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> の中で <a class=\"reference internal\" href=\"#django.forms.Form.field_order\" title=\"django.forms.Form.field_order\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">field_order</span></code></a> が定義されていて、 <em>かつ</em> <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> をインスタンス化する際に <code class=\"docutils literal notranslate\"><span class=\"pre\">field_order</span></code> をインクルードする場合、後者の <code class=\"docutils literal notranslate\"><span class=\"pre\">field_order</span></code> が優先されます。</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.order_fields\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">order_fields</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field_order</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.order_fields\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>また、 <code class=\"docutils literal notranslate\"><span class=\"pre\">order_fields()</span></code> に <a class=\"reference internal\" href=\"#django.forms.Form.field_order\" title=\"django.forms.Form.field_order\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">field_order</span></code></a> と同様のフィールド名のリストを用いて、いつでもフィールドの順序を変更できます。</p>\n</section>\n<section id=\"how-errors-are-displayed\">\n<h3>エラーの表示方法<a class=\"heading-anchor\" href=\"#how-errors-are-displayed\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>バインドされた <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> オブジェクトをレンダリングすると、まだ実行されていない場合はフォームのバリデーションが自動的に実行され、HTML出力にはバリデーションエラーがフィールドの近くに <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;ul</span> <span class=\"pre\">class=&quot;errorlist&quot;&gt;</span></code> として含まれます。エラーメッセージの具体的な配置は使用している出力方法に依存します。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;sender&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;invalid email address&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;cc_myself&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;Subject:</span>\n<span class=\"go\">  &lt;ul class=&quot;errorlist&quot;&gt;&lt;li&gt;This field is required.&lt;/li&gt;&lt;/ul&gt;</span>\n<span class=\"go\">  &lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required aria-invalid=&quot;true&quot;&gt;</span>\n<span class=\"go\">&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Message:</span>\n<span class=\"go\">  &lt;textarea name=&quot;message&quot; cols=&quot;40&quot; rows=&quot;10&quot; required&gt;Hi there&lt;/textarea&gt;</span>\n<span class=\"go\">&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Sender:</span>\n<span class=\"go\">  &lt;ul class=&quot;errorlist&quot;&gt;&lt;li&gt;Enter a valid email address.&lt;/li&gt;&lt;/ul&gt;</span>\n<span class=\"go\">  &lt;input type=&quot;email&quot; name=&quot;sender&quot; value=&quot;invalid email address&quot; required aria-invalid=&quot;true&quot;&gt;</span>\n<span class=\"go\">&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Cc myself:</span>\n<span class=\"go\">  &lt;input type=&quot;checkbox&quot; name=&quot;cc_myself&quot; checked&gt;</span>\n<span class=\"go\">&lt;/div&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"customizing-the-error-list-format\">\n<span id=\"ref-forms-error-list-format\"></span><h3>エラーリストのフォーマットをカスタムする<a class=\"heading-anchor\" href=\"#customizing-the-error-list-format\"><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.ErrorList\">\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\">ErrorList</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">initlist</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">error_class</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">renderer</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.ErrorList\"><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\">django.forms.utils.ErrorList</span></code> を使用します。<code class=\"docutils literal notranslate\"><span class=\"pre\">ErrorList</span></code> はリストのようなオブジェクトであり、<code class=\"docutils literal notranslate\"><span class=\"pre\">initlist</span></code> はエラーのリストです。さらに、このクラスは以下の属性とメソッドを持っています。</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ErrorList.error_class\">\n<span class=\"sig-name descname\"><span class=\"pre\">error_class</span></span><a class=\"heading-anchor\" href=\"#django.forms.ErrorList.error_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>エラーリストをレンダリングする際に使用されるCSSクラス。指定されたクラスは、デフォルトの <code class=\"docutils literal notranslate\"><span class=\"pre\">errorlist</span></code> クラスに追加されます。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ErrorList.renderer\">\n<span class=\"sig-name descname\"><span class=\"pre\">renderer</span></span><a class=\"heading-anchor\" href=\"#django.forms.ErrorList.renderer\"><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\">ErrorList</span></code> に使用する <a class=\"reference internal\" href=\"/ja/5.0/ref/forms/renderers/\"><span class=\"doc\">レンダラー</span></a> を指定します。デフォルトでは <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> であり、これは <a class=\"reference internal\" href=\"/ja/5.0/ref/settings/#std-setting-FORM_RENDERER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FORM_RENDERER</span></code></a> 設定で指定されたデフォルトのレンダラーを使用することを意味します。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ErrorList.template_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name</span></span><a class=\"heading-anchor\" href=\"#django.forms.ErrorList.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\">__str__</span></code> や <a class=\"reference internal\" href=\"#django.forms.ErrorList.render\" title=\"django.forms.ErrorList.render\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">render()</span></code></a> を呼び出した際に使用されるテンプレートの名前です。デフォルトでは、これは <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/errors/list/default.html'</span></code> であり、<code class=\"docutils literal notranslate\"><span class=\"pre\">'ul.html'</span></code> テンプレートのプロキシとなります。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ErrorList.template_name_text\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name_text</span></span><a class=\"heading-anchor\" href=\"#django.forms.ErrorList.template_name_text\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.forms.ErrorList.as_text\" title=\"django.forms.ErrorList.as_text\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">as_text()</span></code></a> を呼び出す際に使用されるテンプレートの名前です。デフォルトでは、これは <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/errors/list/text.html'</span></code> です。このテンプレートは、エラーを箇条書きのリストとしてレンダリングします。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ErrorList.template_name_ul\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name_ul</span></span><a class=\"heading-anchor\" href=\"#django.forms.ErrorList.template_name_ul\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.forms.ErrorList.as_ul\" title=\"django.forms.ErrorList.as_ul\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">as_ul()</span></code></a> を呼び出すときに使用されるテンプレートの名前です。デフォルトではこれは <code class=\"docutils literal notranslate\"><span class=\"pre\">'django/forms/errors/list/ul.html'</span></code> です。このテンプレートは、 <a class=\"reference internal\" href=\"#django.forms.ErrorList.error_class\" title=\"django.forms.ErrorList.error_class\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">error_class</span></code></a> で定義された CSS クラスを持つ包括的な <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;ul&gt;</span></code> で <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;li&gt;</span></code> タグ内のエラーをレンダリングします。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ErrorList.get_context\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_context</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ErrorList.get_context\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>テンプレート内のエラーのレンダリング用のコンテキストを返します。</p>\n<p>利用可能なコンテキストは次のとおりです。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">errors</span></code>: エラーのリスト。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">error_class</span></code>: CSSクラスの文字列。</p></li>\n</ul>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ErrorList.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><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">context</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">renderer</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.ErrorList.render\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>renderメソッドは、 <code class=\"docutils literal notranslate\"><span class=\"pre\">__str__</span></code> と <a class=\"reference internal\" href=\"#django.forms.ErrorList.as_ul\" title=\"django.forms.ErrorList.as_ul\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">as_ul()</span></code></a> メソッドの両方から呼び出されます。</p>\n<p>すべての引数はオプションで、デフォルト値は以下の通りです:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <a class=\"reference internal\" href=\"#django.forms.ErrorList.template_name\" title=\"django.forms.ErrorList.template_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">template_name</span></code></a> が返す値</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">context</span></code>: <a class=\"reference internal\" href=\"#django.forms.ErrorList.get_context\" title=\"django.forms.ErrorList.get_context\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_context()</span></code></a> が返す値</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">renderer</span></code>: <a class=\"reference internal\" href=\"#django.forms.ErrorList.renderer\" title=\"django.forms.ErrorList.renderer\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">renderer</span></code></a> が返す値</p></li>\n</ul>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ErrorList.as_text\">\n<span class=\"sig-name descname\"><span class=\"pre\">as_text</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ErrorList.as_text\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>エラーリストを <a class=\"reference internal\" href=\"#django.forms.ErrorList.template_name_text\" title=\"django.forms.ErrorList.template_name_text\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">template_name_text</span></code></a> で定義されたテンプレートを使用してレンダリングします。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ErrorList.as_ul\">\n<span class=\"sig-name descname\"><span class=\"pre\">as_ul</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ErrorList.as_ul\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.forms.ErrorList.template_name_ul\" title=\"django.forms.ErrorList.template_name_ul\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">template_name_ul</span></code></a> で定義されたテンプレートを使用してエラーリストをレンダリングします。</p>\n</dd></dl>\n\n<p>エラーのレンダリングをカスタマイズしたい場合は、<a class=\"reference internal\" href=\"#django.forms.ErrorList.template_name\" title=\"django.forms.ErrorList.template_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">template_name</span></code></a> 属性をオーバーライドするか、あるいはデフォルトテンプレートをオーバーライドすることによって達成できます。詳しくは <a class=\"reference internal\" href=\"/ja/5.0/ref/forms/renderers/#overriding-built-in-form-templates\"><span class=\"std std-ref\">組み込みのフォームテンプレートをオーバーライドする</span></a> も参照してください。</p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"more-granular-output\">\n<h2>さらに詳細なアウトプット<a class=\"heading-anchor\" href=\"#more-granular-output\"><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\">as_p()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">as_ul()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">as_table()</span></code> メソッドはショートカットです -- フォームオブジェクトを表示する唯一の方法ではありません。</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField\">\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\">BoundField</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> インスタンスのひとつのフィールドを HTML として表示したり、その属性にアクセスするのに使います。</p>\n<p>このオブジェクトの <code class=\"docutils literal notranslate\"><span class=\"pre\">__str__()</span></code> メソッドは、このフィールドの HTML を表示します。</p>\n</dd></dl>\n\n<p>単一の <code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code> を取得するには、フィールド名をキーとしてフォームに対して辞書参照構文を使用します。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">form</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">form</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;input id=&quot;id_subject&quot; type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required&gt;</span>\n</code></pre></div>\n<p>全ての <code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code> オブジェクトを取得するには、フォームをイテレートします:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">form</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">for</span> <span class=\"n\">boundfield</span> <span class=\"ow\">in</span> <span class=\"n\">form</span><span class=\"p\">:</span>\n<span class=\"gp\">... </span>    <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">boundfield</span><span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"go\">&lt;input id=&quot;id_subject&quot; type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required&gt;</span>\n<span class=\"go\">&lt;input type=&quot;text&quot; name=&quot;message&quot; id=&quot;id_message&quot; required&gt;</span>\n<span class=\"go\">&lt;input type=&quot;email&quot; name=&quot;sender&quot; id=&quot;id_sender&quot; required&gt;</span>\n<span class=\"go\">&lt;input type=&quot;checkbox&quot; name=&quot;cc_myself&quot; id=&quot;id_cc_myself&quot;&gt;</span>\n</code></pre></div>\n<p>フィールド固有の出力は、フォームオブジェクトの <code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id</span></code> 設定を反映します:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;input type=&quot;text&quot; name=&quot;message&quot; required&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"s2\">&quot;id_</span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;input type=&quot;text&quot; name=&quot;message&quot; id=&quot;id_message&quot; required&gt;</span>\n</code></pre></div>\n<section id=\"attributes-of-boundfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code> の属性一覧<a class=\"heading-anchor\" href=\"#attributes-of-boundfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.auto_id\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">auto_id</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.auto_id\"><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> の HTML ID 属性。 <a class=\"reference internal\" href=\"#django.forms.Form.auto_id\" title=\"django.forms.Form.auto_id\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.auto_id</span></code></a> が <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> であれば、空の文字列を返します。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.data\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">data</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.data\"><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.0/ref/forms/widgets/#django.forms.Widget.value_from_datadict\" title=\"django.forms.Widget.value_from_datadict\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">value_from_datadict()</span></code></a> メソッドによって抽出された、この <a class=\"reference internal\" href=\"#django.forms.BoundField\" title=\"django.forms.BoundField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BoundField</span></code></a> のデータを返します。もしデータが与えられていない場合は、 <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> を返します。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">unbound_form</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">unbound_form</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"go\">None</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">bound_form</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;My Subject&quot;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">bound_form</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">data</span><span class=\"p\">)</span>\n<span class=\"go\">My Subject</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.errors\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">errors</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.errors\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>プリント時に HTML の <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;ul</span> <span class=\"pre\">class=&quot;errorlist&quot;&gt;</span></code> として表示される <a class=\"reference internal\" href=\"#ref-forms-error-list-format\"><span class=\"std std-ref\">リストのようなオブジェクト</span></a> です:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;hi&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;sender&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;cc_myself&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;input type=&quot;text&quot; name=&quot;message&quot; required aria-invalid=&quot;true&quot;&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">errors</span>\n<span class=\"go\">[&#39;This field is required.&#39;]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;ul class=&quot;errorlist&quot;&gt;&lt;li&gt;This field is required.&lt;/li&gt;&lt;/ul&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">errors</span>\n<span class=\"go\">[]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"p\">)</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">str</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;&#39;</span>\n</code></pre></div>\n<p>エラーを含むフィールドをレンダリングする際、そのフィールドのウィジェットに <code class=\"docutils literal notranslate\"><span class=\"pre\">aria-invalid=&quot;true&quot;</span></code> が設定され、スクリーンリーダーユーザーにエラーが存在することを示します。</p>\n<aside class=\"version-note version-changed\" data-version=\"5.0\">\n<p class=\"version-note-title\">Changed in Django 5.0</p><p>フィールドにエラーがある場合、 <code class=\"docutils literal notranslate\"><span class=\"pre\">aria-invalid=&quot;true&quot;</span></code> が追加されました。</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.field\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">field</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.field\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>この <a class=\"reference internal\" href=\"#django.forms.BoundField\" title=\"django.forms.BoundField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BoundField</span></code></a> がラップしているフォームクラスの <a class=\"reference internal\" href=\"/ja/5.0/ref/forms/fields/#django.forms.Field\" title=\"django.forms.Field\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Field</span></code></a> インスタンス。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.form\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">form</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.form\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>この <a class=\"reference internal\" href=\"#django.forms.BoundField\" title=\"django.forms.BoundField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BoundField</span></code></a> がバインドされている <a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> インスタンス。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.help_text\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">help_text</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.help_text\"><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.0/ref/forms/fields/#django.forms.Field.help_text\" title=\"django.forms.Field.help_text\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">help_text</span></code></a> 。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.html_name\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">html_name</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.html_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>ウィジェットのHTMLの <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> 属性で使用される名前です。これは <a class=\"reference internal\" href=\"#django.forms.Form.prefix\" title=\"django.forms.Form.prefix\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">prefix</span></code></a> の形式を考慮します。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.id_for_label\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">id_for_label</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.id_for_label\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>このプロパティを使用して、このフィールドのIDをレンダリングします。例えば、(<a class=\"reference internal\" href=\"#django.forms.BoundField.label_tag\" title=\"django.forms.BoundField.label_tag\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">label_tag()</span></code></a>/<a class=\"reference internal\" href=\"#django.forms.BoundField.legend_tag\" title=\"django.forms.BoundField.legend_tag\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">legend_tag()</span></code></a> がこれを行ってくれるにも関わらず、) テンプレートで手動で <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> を構築している場合は:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</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=\"Django template code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{{</span> <span class=\"nv\">form.my_field.id_for_label</span> <span class=\"cp\">}}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>...<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">my_field</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>デフォルトでは、これはフィールドの名前に <code class=\"docutils literal notranslate\"><span class=\"pre\">id_</span></code> を前につけたものになります(上の例では &quot;<code class=\"docutils literal notranslate\"><span class=\"pre\">id_my_field</span></code>&quot;)。フィールドのウィジェットの <a class=\"reference internal\" href=\"/ja/5.0/ref/forms/widgets/#django.forms.Widget.attrs\" title=\"django.forms.Widget.attrs\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">attrs</span></code></a> を設定することで、IDを変更できます。例えば、以下のようにフィールドを宣言します:</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=\"n\">my_field</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">widget</span><span class=\"o\">=</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">TextInput</span><span class=\"p\">(</span><span class=\"n\">attrs</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;myFIELD&quot;</span><span class=\"p\">}))</span>\n</code></pre></div>\n<p>そして、上記のテンプレートを使用すると、以下のように表示されます:</p>\n<div class=\"code-block\" data-language=\"html\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Html</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=\"Html code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">label</span> <span class=\"na\">for</span><span class=\"o\">=</span><span class=\"s\">&quot;myFIELD&quot;</span><span class=\"p\">&gt;</span>...<span class=\"p\">&lt;/</span><span class=\"nt\">label</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">input</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;myFIELD&quot;</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;text&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;my_field&quot;</span> <span class=\"na\">required</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.initial\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">initial</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.initial\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.forms.BoundField.initial\" title=\"django.forms.BoundField.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.initial</span></code></a> を使用して、フォームフィールドの初期データを取得します。データは、存在する場合は <a class=\"reference internal\" href=\"#django.forms.Form.initial\" title=\"django.forms.Form.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.initial</span></code></a> から、そうでなければ <a class=\"reference internal\" href=\"/ja/5.0/ref/forms/fields/#django.forms.Field.initial\" title=\"django.forms.Field.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Field.initial</span></code></a> から取得されます。呼び出し可能オブジェクトの値は評価されます。より多くの例については、 <a class=\"reference internal\" href=\"#ref-forms-initial-form-values\"><span class=\"std std-ref\">フォームの初期値</span></a> を参照してください。</p>\n<p><a class=\"reference internal\" href=\"#django.forms.BoundField.initial\" title=\"django.forms.BoundField.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.initial</span></code></a> はその返り値をキャッシュします。これは、返り値が変わる可能性がある呼び出し可能オブジェクト(例: <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.now</span></code> や <code class=\"docutils literal notranslate\"><span class=\"pre\">uuid.uuid4</span></code> など)を扱う際に特に便利です。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">datetime</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">datetime</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">DatedCommentForm</span><span class=\"p\">(</span><span class=\"n\">CommentForm</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">created</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">DateTimeField</span><span class=\"p\">(</span><span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"n\">datetime</span><span class=\"o\">.</span><span class=\"n\">now</span><span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">DatedCommentForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;created&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">initial</span>\n<span class=\"go\">datetime.datetime(2021, 7, 27, 9, 5, 54)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;created&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">initial</span>\n<span class=\"go\">datetime.datetime(2021, 7, 27, 9, 5, 54)</span>\n</code></pre></div>\n<p><a class=\"reference internal\" href=\"#django.forms.Form.get_initial_for_field\" title=\"django.forms.Form.get_initial_for_field\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_initial_for_field()</span></code></a> よりも <a class=\"reference internal\" href=\"#django.forms.BoundField.initial\" title=\"django.forms.BoundField.initial\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.initial</span></code></a> を使うことをお勧めします。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.is_hidden\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">is_hidden</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.is_hidden\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>この <a class=\"reference internal\" href=\"#django.forms.BoundField\" title=\"django.forms.BoundField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BoundField</span></code></a> のウィジェットが非表示の場合、 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> を返します。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.label\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">label</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.label\"><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.0/ref/forms/fields/#django.forms.Field.label\" title=\"django.forms.Field.label\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">label</span></code></a> 。これは <a class=\"reference internal\" href=\"#django.forms.BoundField.label_tag\" title=\"django.forms.BoundField.label_tag\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">label_tag()</span></code></a>/<a class=\"reference internal\" href=\"#django.forms.BoundField.legend_tag\" title=\"django.forms.BoundField.legend_tag\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">legend_tag()</span></code></a> で使用されます。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.name\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">name</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>このフィールドのフォーム上での名前:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">name</span><span class=\"p\">)</span>\n<span class=\"go\">subject</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">name</span><span class=\"p\">)</span>\n<span class=\"go\">message</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.template_name\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">template_name</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.template_name\"><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.0\">\n<p class=\"version-note-title\">New in Django 5.0</p></aside>\n<p><a class=\"reference internal\" href=\"#django.forms.BoundField.as_field_group\" title=\"django.forms.BoundField.as_field_group\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">BoundField.as_field_group()</span></code></a> でレンダリングされるテンプレートの名前。</p>\n<p>指定されていれば <a class=\"reference internal\" href=\"/ja/5.0/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\">template_name</span></code></a> の値を、そうでなければ <a class=\"reference internal\" href=\"/ja/5.0/ref/forms/renderers/#django.forms.renderers.BaseRenderer.field_template_name\" title=\"django.forms.renderers.BaseRenderer.field_template_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">field_template_name</span></code></a> の値を返すプロパティ。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.use_fieldset\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">use_fieldset</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.use_fieldset\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>この BoundField ウィジェットの <code class=\"docutils literal notranslate\"><span class=\"pre\">use_fieldset</span></code> 属性の値を返します。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.widget_type\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">widget_type</span></span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.widget_type\"><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\">input</span></code> や <code class=\"docutils literal notranslate\"><span class=\"pre\">widget</span></code> を削除したものを返します。これは、ウィジェットのタイプに依存するレイアウトを持つフォームを構築する際に使用できます。例えば：</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</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=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">field</span> <span class=\"k\">in</span> <span class=\"nv\">form</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">field.widget_type</span> <span class=\"o\">==</span> <span class=\"s1\">&#39;checkbox&#39;</span> <span class=\"cp\">%}</span>\n        # render one way\n    <span class=\"cp\">{%</span> <span class=\"k\">else</span> <span class=\"cp\">%}</span>\n        # render another way\n    <span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n<section id=\"methods-of-boundfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code> のメソッド<a class=\"heading-anchor\" href=\"#methods-of-boundfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.as_field_group\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">as_field_group</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.as_field_group\"><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.0\">\n<p class=\"version-note-title\">New in Django 5.0</p></aside>\n<p>フィールドを <a class=\"reference internal\" href=\"#django.forms.BoundField.render\" title=\"django.forms.BoundField.render\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">BoundField.render()</span></code></a> を使用してデフォルト値でレンダリングし、設定されている場合はテンプレートの <a class=\"reference internal\" href=\"/ja/5.0/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\">template_name</span></code></a> 、そうでなければ <a class=\"reference internal\" href=\"/ja/5.0/ref/forms/renderers/#django.forms.renderers.BaseRenderer.field_template_name\" title=\"django.forms.renderers.BaseRenderer.field_template_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">field_template_name</span></code></a> を使用して、<code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code> をラベル、ヘルプテキスト、エラーとともにレンダリングします。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.as_hidden\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">as_hidden</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">attrs</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.as_hidden\"><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\">&lt;input</span> <span class=\"pre\">type=&quot;hidden&quot;&gt;</span></code> として表現するためのHTMLの文字列を返します。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">**kwargs</span></code> は <a class=\"reference internal\" href=\"#django.forms.BoundField.as_widget\" title=\"django.forms.BoundField.as_widget\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">as_widget()</span></code></a> に渡されます。</p>\n<p>このメソッドは主に内部で使用されます。代わりにウィジェットを使用すべきです。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.as_widget\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">as_widget</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">widget</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">attrs</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">only_initial</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.as_widget\"><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\">attrs</span></code> として渡された任意のHTML属性を追加してフィールドをレンダリングします。ウィジェットが指定されていない場合、フィールドのデフォルトウィジェットが使用されます。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">only_initial</span></code> は Django の内部で使用されるものであり、明示的に設定すべきではありません。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.css_classes\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">css_classes</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">extra_classes</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.BoundField.css_classes\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Djangoのレンダリングショートカットを利用すると、必須のフォームフィールドやエラーを含むフィールドを示すためのCSSクラスが使用されます。フォームを手動でレンダリングする場合は、 <code class=\"docutils literal notranslate\"><span class=\"pre\">css_classes</span></code> メソッドを使用してこれらのCSSクラスにアクセスできます。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">css_classes</span><span class=\"p\">()</span>\n<span class=\"go\">&#39;required&#39;</span>\n</code></pre></div>\n<p>エラークラスと必須クラスが必要な場合に加えて、追加のクラスを提供したい場合は、引数としてそのクラスを提供できます:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">css_classes</span><span class=\"p\">(</span><span class=\"s2\">&quot;foo bar&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;foo bar required&#39;</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.get_context\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_context</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.get_context\"><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.0\">\n<p class=\"version-note-title\">New in Django 5.0</p></aside>\n<p>レンダリングするためのテンプレートコンテキストを返します。利用可能なコンテキストは、バインドされたフィールドのインスタンスである <code class=\"docutils literal notranslate\"><span class=\"pre\">field</span></code> です。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.label_tag\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">label_tag</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">contents</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">attrs</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">label_suffix</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">tag</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.BoundField.label_tag\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>フォームフィールドのラベルタグを、 <a class=\"reference internal\" href=\"#django.forms.Form.template_name_label\" title=\"django.forms.Form.template_name_label\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.template_name_label</span></code></a> で指定されたテンプレートを使用してレンダリングします。</p>\n<p>利用可能なコンテキストは次のとおりです。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">field</span></code>: この <a class=\"reference internal\" href=\"#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<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">contents</span></code>: デフォルトでは <a class=\"reference internal\" href=\"#django.forms.BoundField.label\" title=\"django.forms.BoundField.label\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.label</span></code></a> と <a class=\"reference internal\" href=\"#django.forms.Form.label_suffix\" title=\"django.forms.Form.label_suffix\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.label_suffix</span></code></a> (または設定されている場合は <a class=\"reference internal\" href=\"/ja/5.0/ref/forms/fields/#django.forms.Field.label_suffix\" title=\"django.forms.Field.label_suffix\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Field.label_suffix</span></code></a>) の結合された文字列です。これは <code class=\"docutils literal notranslate\"><span class=\"pre\">contents</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">label_suffix</span></code> 引数によって上書きできます。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">attrs</span></code>: <code class=\"docutils literal notranslate\"><span class=\"pre\">for</span></code>、<a class=\"reference internal\" href=\"#django.forms.Form.required_css_class\" title=\"django.forms.Form.required_css_class\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.required_css_class</span></code></a>、および <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> を含む <code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> 。<code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> はフィールドのウィジェット <code class=\"docutils literal notranslate\"><span class=\"pre\">attrs</span></code> または <a class=\"reference internal\" href=\"#django.forms.BoundField.auto_id\" title=\"django.forms.BoundField.auto_id\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.auto_id</span></code></a> によって生成されます。追加の属性は <code class=\"docutils literal notranslate\"><span class=\"pre\">attrs</span></code> 引数によって提供できます。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">use_tag</span></code>: ラベルに <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> がある場合は <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>、そうでない場合は <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> の真偽値です。<code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> の場合、デフォルトテンプレートは <code class=\"docutils literal notranslate\"><span class=\"pre\">tag</span></code> を省略します。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">tag</span></code>: タグをカスタマイズするオプションの文字列で、デフォルトは <code class=\"docutils literal notranslate\"><span class=\"pre\">label</span></code> です。</p></li>\n</ul>\n<aside class=\"admonition admonition-tip\">\n<p class=\"admonition-title\">Tip</p>\n<p>テンプレートでは、<code class=\"docutils literal notranslate\"><span class=\"pre\">field</span></code> は <code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code> のインスタンスです。したがって、<code class=\"docutils literal notranslate\"><span class=\"pre\">field.field</span></code> でアクセスする <a class=\"reference internal\" href=\"#django.forms.BoundField.field\" title=\"django.forms.BoundField.field\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.field</span></code></a> は、あなたが宣言したフィールド、例えば <code class=\"docutils literal notranslate\"><span class=\"pre\">forms.CharField</span></code> になります。</p>\n</aside>\n<p>フォームフィールドのラベルタグを別々にレンダリングするには、その <code class=\"docutils literal notranslate\"><span class=\"pre\">label_tag()</span></code> メソッドを呼び出します:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">[</span><span class=\"s2\">&quot;message&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">label_tag</span><span class=\"p\">())</span>\n<span class=\"go\">&lt;label for=&quot;id_message&quot;&gt;Message:&lt;/label&gt;</span>\n</code></pre></div>\n<p>レンダリングをカスタマイズしたい場合は、 <a class=\"reference internal\" href=\"#django.forms.Form.template_name_label\" title=\"django.forms.Form.template_name_label\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.template_name_label</span></code></a> 属性をオーバーライドするか、一般的にはデフォルトのテンプレートをオーバーライドしてください。詳細は、 <a class=\"reference internal\" href=\"/ja/5.0/ref/forms/renderers/#overriding-built-in-form-templates\"><span class=\"std std-ref\">組み込みのフォームテンプレートをオーバーライドする</span></a> も参照してください。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.legend_tag\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">legend_tag</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">contents</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">attrs</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">label_suffix</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.BoundField.legend_tag\"><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\">tag='legend'</span></code> を指定して <a class=\"reference internal\" href=\"#django.forms.BoundField.label_tag\" title=\"django.forms.BoundField.label_tag\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">label_tag()</span></code></a> を呼び出すと、ラベルを <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;legend&gt;</span></code> タグでレンダリングします。これは、 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;label&gt;</span></code> よりも <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;legend&gt;</span></code> が適しているラジオボタンや複数のチェックボックスウィジェットをレンダリングする際に便利です。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.render\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><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><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">context</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">renderer</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.BoundField.render\"><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.0\">\n<p class=\"version-note-title\">New in Django 5.0</p></aside>\n<p>renderメソッドは <code class=\"docutils literal notranslate\"><span class=\"pre\">as_field_group</span></code> によって呼び出されます。すべての引数はオプションであり、デフォルト値は次のとおりです。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code>: <a class=\"reference internal\" href=\"#django.forms.BoundField.template_name\" title=\"django.forms.BoundField.template_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">BoundField.template_name</span></code></a></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">context</span></code>: <a class=\"reference internal\" href=\"#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></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">renderer</span></code>: <a class=\"reference internal\" href=\"#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> が返す値</p></li>\n</ul>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code> を渡すことで、単一の呼び出しに使用されるテンプレートをカスタマイズできます。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.BoundField.value\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BoundField.</span></span><span class=\"sig-name descname\"><span class=\"pre\">value</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.BoundField.value\"><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\">Widget</span></code> によってレンダリングされるフィールドの生の値をレンダリングできます:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">initial</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;welcome&quot;</span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">unbound_form</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"n\">initial</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">bound_form</span> <span class=\"o\">=</span> <span class=\"n\">ContactForm</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;hi&quot;</span><span class=\"p\">},</span> <span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"n\">initial</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">unbound_form</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">value</span><span class=\"p\">())</span>\n<span class=\"go\">welcome</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">bound_form</span><span class=\"p\">[</span><span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">value</span><span class=\"p\">())</span>\n<span class=\"go\">hi</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"customizing-boundfield\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">BoundField</span></code> のカスタマイズ<a class=\"heading-anchor\" href=\"#customizing-boundfield\"><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.0/ref/forms/fields/#django.forms.Field\" title=\"django.forms.Field\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Field</span></code></a> のサブクラスを使用するだけでは不十分な場合は、 <a class=\"reference internal\" href=\"#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>カスタムフォームフィールドは <code class=\"docutils literal notranslate\"><span class=\"pre\">get_bound_field()</span></code> をオーバーライドできます:</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Field.get_bound_field\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_bound_field</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">form</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field_name</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Field.get_bound_field\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.forms.Form\" title=\"django.forms.Form\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form</span></code></a> のインスタンスとフィールドの名前を受け取ります。テンプレートでフィールドにアクセスする際に使用される返り値は、ほとんどの場合、 <a class=\"reference internal\" href=\"#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</dd></dl>\n\n<p>たとえば <code class=\"docutils literal notranslate\"><span class=\"pre\">GPSCoordinatesField</span></code> を持っていて、テンプレート内で座標に関する追加情報にアクセスしたい場合、以下のように実装できます:</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=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">GPSCoordinatesBoundField</span><span class=\"p\">(</span><span class=\"n\">BoundField</span><span class=\"p\">):</span>\n    <span class=\"nd\">@property</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">country</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Return the country the coordinates lie in or None if it can&#39;t be</span>\n<span class=\"sd\">        determined.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n        <span class=\"n\">value</span> <span class=\"o\">=</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">value</span><span class=\"p\">()</span>\n        <span class=\"k\">if</span> <span class=\"n\">value</span><span class=\"p\">:</span>\n            <span class=\"k\">return</span> <span class=\"n\">get_country_from_coordinates</span><span class=\"p\">(</span><span class=\"n\">value</span><span class=\"p\">)</span>\n        <span class=\"k\">else</span><span class=\"p\">:</span>\n            <span class=\"k\">return</span> <span class=\"kc\">None</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">GPSCoordinatesField</span><span class=\"p\">(</span><span class=\"n\">Field</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_bound_field</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">form</span><span class=\"p\">,</span> <span class=\"n\">field_name</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">GPSCoordinatesBoundField</span><span class=\"p\">(</span><span class=\"n\">form</span><span class=\"p\">,</span> <span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">field_name</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>これで、テンプレート内で <code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">form.coordinates.country</span> <span class=\"pre\">}}</span></code> を使って国にアクセスできるようになりました。</p>\n</section>\n<section id=\"binding-uploaded-files-to-a-form\">\n<span id=\"binding-uploaded-files\"></span><h2>アップロードされたファイルをフォームにバインドする<a class=\"heading-anchor\" href=\"#binding-uploaded-files-to-a-form\"><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\">FileField</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">ImageField</span></code> フィールドを持つフォームを扱うのは、通常のフォームよりも少し複雑です。</p>\n<p>まず、ファイルをアップロードするには、<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;form&gt;</span></code> 要素が <code class=\"docutils literal notranslate\"><span class=\"pre\">enctype</span></code> を <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;multipart/form-data&quot;</span></code> として正しく定義していることを確認する必要があります:</p>\n<div class=\"code-block\" data-language=\"html\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Html</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=\"Html code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">form</span> <span class=\"na\">enctype</span><span class=\"o\">=</span><span class=\"s\">&quot;multipart/form-data&quot;</span> <span class=\"na\">method</span><span class=\"o\">=</span><span class=\"s\">&quot;post&quot;</span> <span class=\"na\">action</span><span class=\"o\">=</span><span class=\"s\">&quot;/foo/&quot;</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>次に、フォームを使用する際には、ファイルデータをバインドする必要があります。ファイルデータは通常のフォームデータとは別に扱われるため、フォームに <code class=\"docutils literal notranslate\"><span class=\"pre\">FileField</span></code> や <code class=\"docutils literal notranslate\"><span class=\"pre\">ImageField</span></code> が含まれている場合、フォームをバインドする際に第2引数を指定する必要があります。したがって、 <code class=\"docutils literal notranslate\"><span class=\"pre\">ImageField</span></code> を <code class=\"docutils literal notranslate\"><span class=\"pre\">mugshot</span></code> という名前で ContactForm に追加した場合、mugshot イメージを含むファイルデータをバインドする必要があります:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"go\"># Bound form with an image field</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.core.files.uploadedfile</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">SimpleUploadedFile</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;subject&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;hello&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;message&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Hi there&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;sender&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;foo@example.com&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s2\">&quot;cc_myself&quot;</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span><span class=\"p\">}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">file_data</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;mugshot&quot;</span><span class=\"p\">:</span> <span class=\"n\">SimpleUploadedFile</span><span class=\"p\">(</span><span class=\"s2\">&quot;face.jpg&quot;</span><span class=\"p\">,</span> <span class=\"sa\">b</span><span class=\"s2\">&quot;file data&quot;</span><span class=\"p\">)}</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactFormWithMugshot</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">file_data</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>実際には、通常、（フォームデータのソースとして <code class=\"docutils literal notranslate\"><span class=\"pre\">request.POST</span></code> を使用するのと同様に、）ファイルデータのソースとして <code class=\"docutils literal notranslate\"><span class=\"pre\">request.FILES</span></code> を指定します:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"go\"># Bound form with an image field, data from the request</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactFormWithMugshot</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">POST</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">FILES</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>バインドされていないフォームを作成する方法は、いつも通りです。フォームデータ <em>と</em> ファイルデータの両方を省略します。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"go\"># Unbound form with an image field</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactFormWithMugshot</span><span class=\"p\">()</span>\n</code></pre></div>\n<section id=\"testing-for-multipart-forms\">\n<h3>マルチパートフォームのテスト<a class=\"heading-anchor\" href=\"#testing-for-multipart-forms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.is_multipart\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">is_multipart</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Form.is_multipart\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>再利用可能なビューやテンプレートを書いている場合、フォームがマルチパートフォームかどうかを事前に知ることができないかもしれません。 <code class=\"docutils literal notranslate\"><span class=\"pre\">is_multipart()</span></code> メソッドは、フォームの送信にマルチパートエンコーディングが必要かどうかを教えてくれます:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactFormWithMugshot</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">is_multipart</span><span class=\"p\">()</span>\n<span class=\"go\">True</span>\n</code></pre></div>\n<p>テンプレートでの使い方の例です:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</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=\"Django template code\"><code><span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">form.is_multipart</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">form</span> <span class=\"na\">enctype</span><span class=\"o\">=</span><span class=\"s\">&quot;multipart/form-data&quot;</span> <span class=\"na\">method</span><span class=\"o\">=</span><span class=\"s\">&quot;post&quot;</span> <span class=\"na\">action</span><span class=\"o\">=</span><span class=\"s\">&quot;/foo/&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">else</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">form</span> <span class=\"na\">method</span><span class=\"o\">=</span><span class=\"s\">&quot;post&quot;</span> <span class=\"na\">action</span><span class=\"o\">=</span><span class=\"s\">&quot;/foo/&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{{</span> <span class=\"nv\">form</span> <span class=\"cp\">}}</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">form</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"subclassing-forms\">\n<h2>フォームをサブクラス化する<a class=\"heading-anchor\" href=\"#subclassing-forms\"><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\">Form</span></code> クラスがフィールドを共有している場合、サブクラス化を利用して冗長性を排除できます。</p>\n<p>カスタム <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> クラスをサブクラス化すると、親クラスのすべてのフィールドが含まれ、その後にサブクラスで定義したフィールドが続きます。</p>\n<p>この例では、<code class=\"docutils literal notranslate\"><span class=\"pre\">ContactFormWithPriority</span></code> は <code class=\"docutils literal notranslate\"><span class=\"pre\">ContactForm</span></code> の全てのフィールドに加え、追加のフィールド <code class=\"docutils literal notranslate\"><span class=\"pre\">priority</span></code> を含んでいます。<code class=\"docutils literal notranslate\"><span class=\"pre\">ContactForm</span></code> のフィールドが最初に配置されます:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ContactFormWithPriority</span><span class=\"p\">(</span><span class=\"n\">ContactForm</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">priority</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ContactFormWithPriority</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;Subject:&lt;input type=&quot;text&quot; name=&quot;subject&quot; maxlength=&quot;100&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Message:&lt;textarea name=&quot;message&quot; cols=&quot;40&quot; rows=&quot;10&quot; required&gt;&lt;/textarea&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Sender:&lt;input type=&quot;email&quot; name=&quot;sender&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Cc myself:&lt;input type=&quot;checkbox&quot; name=&quot;cc_myself&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Priority:&lt;input type=&quot;text&quot; name=&quot;priority&quot; required&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>複数のフォームをサブクラス化し、フォームをミックスインとして扱うことができます。この例では、<code class=\"docutils literal notranslate\"><span class=\"pre\">BeatleForm</span></code> が <code class=\"docutils literal notranslate\"><span class=\"pre\">PersonForm</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">InstrumentForm</span></code> （この順番で）の両方をサブクラス化し、そのフィールドリストは親クラスのフィールドを含んでいます:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">first_name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">... </span>    <span class=\"n\">last_name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">InstrumentForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">instrument</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">BeatleForm</span><span class=\"p\">(</span><span class=\"n\">InstrumentForm</span><span class=\"p\">,</span> <span class=\"n\">PersonForm</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">haircut_type</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">b</span> <span class=\"o\">=</span> <span class=\"n\">BeatleForm</span><span class=\"p\">(</span><span class=\"n\">auto_id</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">b</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;First name:&lt;input type=&quot;text&quot; name=&quot;first_name&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Last name:&lt;input type=&quot;text&quot; name=&quot;last_name&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Instrument:&lt;input type=&quot;text&quot; name=&quot;instrument&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Haircut type:&lt;input type=&quot;text&quot; name=&quot;haircut_type&quot; required&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>親クラスから継承された <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> を、サブクラスでフィールドの名前を <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> に設定することで、宣言的にフィールドを削除できます。たとえば次のようにします:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">forms</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ParentForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">()</span>\n<span class=\"gp\">... </span>    <span class=\"n\">age</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">IntegerField</span><span class=\"p\">()</span>\n<span class=\"gp\">...</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ChildForm</span><span class=\"p\">(</span><span class=\"n\">ParentForm</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>\n<span class=\"gp\">...</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">list</span><span class=\"p\">(</span><span class=\"n\">ChildForm</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">fields</span><span class=\"p\">)</span>\n<span class=\"go\">[&#39;age&#39;]</span>\n</code></pre></div>\n</section>\n<section id=\"prefixes-for-forms\">\n<span id=\"form-prefix\"></span><h2>フォームのプレフィックス<a class=\"heading-anchor\" href=\"#prefixes-for-forms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Form.prefix\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Form.</span></span><span class=\"sig-name descname\"><span class=\"pre\">prefix</span></span><a class=\"heading-anchor\" href=\"#django.forms.Form.prefix\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>1 つの <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;form&gt;</span></code> タグの中に複数の Django フォームを配置できます。各 <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> に独自の名前空間を与えるには、<code class=\"docutils literal notranslate\"><span class=\"pre\">prefix</span></code> キーワード引数を使用します。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">mother</span> <span class=\"o\">=</span> <span class=\"n\">PersonForm</span><span class=\"p\">(</span><span class=\"n\">prefix</span><span class=\"o\">=</span><span class=\"s2\">&quot;mother&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">father</span> <span class=\"o\">=</span> <span class=\"n\">PersonForm</span><span class=\"p\">(</span><span class=\"n\">prefix</span><span class=\"o\">=</span><span class=\"s2\">&quot;father&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">mother</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_mother-first_name&quot;&gt;First name:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;mother-first_name&quot; required id=&quot;id_mother-first_name&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_mother-last_name&quot;&gt;Last name:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;mother-last_name&quot; required id=&quot;id_mother-last_name&quot;&gt;&lt;/div&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">father</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_father-first_name&quot;&gt;First name:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;father-first_name&quot; required id=&quot;id_father-first_name&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_father-last_name&quot;&gt;Last name:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;father-last_name&quot; required id=&quot;id_father-last_name&quot;&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>プレフィックスは、フォームクラスにも指定できます：</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</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=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PersonForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Form</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span>    <span class=\"o\">...</span>\n<span class=\"gp\">... </span>    <span class=\"n\">prefix</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;person&quot;</span>\n<span class=\"gp\">...</span>\n</code></pre></div>\n</section>","rootId":"module-django.forms","toc":[{"title":"バインドされた (bound) フォームとバインドされていない (unbound) フォーム","anchor":"bound-and-unbound-forms","children":[]},{"title":"フォームをデータの検証に使用する","anchor":"using-forms-to-validate-data","children":[{"title":"バインドされていないフォームの動作","anchor":"behavior-of-unbound-forms","children":[]}]},{"title":"フォームの初期値","anchor":"initial-form-values","children":[]},{"title":"どのフォームデータが変更されたかをチェックする","anchor":"checking-which-form-data-has-changed","children":[]},{"title":"フォームからフィールドにアクセスする","anchor":"accessing-the-fields-from-the-form","children":[]},{"title":"\"clean\" なデータにアクセスする","anchor":"accessing-clean-data","children":[]},{"title":"フォームをHTMLとしてアウトプットする","anchor":"outputting-forms-as-html","children":[{"title":"デフォルトのレンダリング","anchor":"default-rendering","children":[{"title":"template_name","anchor":"template-name","children":[]},{"title":"render()","anchor":"render","children":[]},{"title":"get_context()","anchor":"get-context","children":[]},{"title":"template_name_label","anchor":"template-name-label","children":[]}]},{"title":"出力スタイル","anchor":"output-styles","children":[{"title":"as_div()","anchor":"as-div","children":[]},{"title":"as_p()","anchor":"as-p","children":[]},{"title":"as_ul()","anchor":"as-ul","children":[]},{"title":"as_table()","anchor":"as-table","children":[]}]},{"title":"必須フォームとエラーのあるフォームのスタイリング","anchor":"styling-required-or-erroneous-form-rows","children":[]},{"title":"フォーム要素の HTML id 属性と <label> タグを設定する","anchor":"configuring-form-elements-html-id-attributes-and-label-tags","children":[]},{"title":"フォームウィジェットのレンダリングを設定する","anchor":"configuring-the-rendering-of-a-form-s-widgets","children":[]},{"title":"フィールドの順序に関する記述","anchor":"notes-on-field-ordering","children":[]},{"title":"エラーの表示方法","anchor":"how-errors-are-displayed","children":[]},{"title":"エラーリストのフォーマットをカスタムする","anchor":"customizing-the-error-list-format","children":[]}]},{"title":"さらに詳細なアウトプット","anchor":"more-granular-output","children":[{"title":"BoundField の属性一覧","anchor":"attributes-of-boundfield","children":[]},{"title":"BoundField のメソッド","anchor":"methods-of-boundfield","children":[]}]},{"title":"BoundField のカスタマイズ","anchor":"customizing-boundfield","children":[]},{"title":"アップロードされたファイルをフォームにバインドする","anchor":"binding-uploaded-files-to-a-form","children":[{"title":"マルチパートフォームのテスト","anchor":"testing-for-multipart-forms","children":[]}]},{"title":"フォームをサブクラス化する","anchor":"subclassing-forms","children":[]},{"title":"フォームのプレフィックス","anchor":"prefixes-for-forms","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API リファレンス","url":"/ja/5.0/ref/"},{"docname":"ref/forms/index","title":"フォーム","url":"/ja/5.0/ref/forms/"}],"prev":{"docname":"ref/forms/index","title":"フォーム","url":"/ja/5.0/ref/forms/"},"next":{"docname":"ref/forms/fields","title":"フォーム フィールド","url":"/ja/5.0/ref/forms/fields/"},"formats":{"html":"/ja/5.0/ref/forms/api/","markdown":"/ja/5.0/ref/forms/api.md","json":"/ja/5.0/ref/forms/api.json"},"source":"https://github.com/django/django/blob/stable/5.0.x/docs/ref/forms/api.txt","official":"https://docs.djangoproject.com/ja/5.0/ref/forms/api/","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","1.10","1.9"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}