{"title":"フォーム フィールド","version":"5.1","locale":"ja","docname":"ref/forms/fields","url":"/ja/5.1/ref/forms/fields/","canonical":"https://djangodocs.dev/ja/5.1/ref/forms/fields/","summary":"class Field Link to this definition # Form クラスを作成時の一番重要な部分は、form のフィールド (field) の定義です。各フィールドにはカスタムの検証ロジックがあり、他にいくつかのフックもあります。 Field. clean ( value ) Link to this…","html":"<span id=\"form-fields\"></span><h1>フォーム フィールド<a class=\"heading-anchor\" href=\"#module-django.forms.fields\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Field\">\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\">Field</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field\"><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> クラスを作成時の一番重要な部分は、form のフィールド (field) の定義です。各フィールドにはカスタムの検証ロジックがあり、他にいくつかのフックもあります。</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Field.clean\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">clean</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.Field.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\">Field</span></code> クラスを使用する主な方法は <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> クラス内ですが、それらを直接インスタンス化して使用することで、その動作をより良く理解できます。各 <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> インスタンスには、単一の引数を取る <code class=\"docutils literal notranslate\"><span class=\"pre\">clean()</span></code> メソッドがあり、<code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.exceptions.ValidationError</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=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">EmailField</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\">clean</span><span class=\"p\">(</span><span class=\"s2\">&quot;foo@example.com&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;foo@example.com&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"s2\">&quot;invalid email address&quot;</span><span class=\"p\">)</span>\n<span class=\"gt\">Traceback (most recent call last):</span>\n<span class=\"c\">...</span>\n<span class=\"gr\">ValidationError</span>: <span class=\"n\">[&#39;Enter a valid email address.&#39;]</span>\n</code></pre></div>\n<section id=\"core-field-arguments\">\n<span id=\"id1\"></span><h2>field のコアとなる引数<a class=\"heading-anchor\" href=\"#core-field-arguments\"><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\">Field</span></code> クラスのコンストラクタは少なくとも以下の引数を受け付けます。<code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> クラスによっては追加のフィールド固有の引数も取れることがありますが、以下に説明する引数は <em>常に</em> 取ることができます。</p>\n<section id=\"required\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code><a class=\"heading-anchor\" href=\"#required\"><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.Field.required\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">required</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.required\"><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\">Field</span></code> クラスは値が必須であると想定しているため、空の値 (<code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> もしくは空文字列 (<code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;&quot;</span></code>)) を渡すと、<code class=\"docutils literal notranslate\"><span class=\"pre\">clean()</span></code> は <code class=\"docutils literal notranslate\"><span class=\"pre\">ValidationError</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=\"n\">f</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\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"s2\">&quot;foo&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;foo&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">)</span>\n<span class=\"gt\">Traceback (most recent call last):</span>\n<span class=\"c\">...</span>\n<span class=\"gr\">ValidationError</span>: <span class=\"n\">[&#39;This field is required.&#39;]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"kc\">None</span><span class=\"p\">)</span>\n<span class=\"gt\">Traceback (most recent call last):</span>\n<span class=\"c\">...</span>\n<span class=\"gr\">ValidationError</span>: <span class=\"n\">[&#39;This field is required.&#39;]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;0&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;True&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;False&#39;</span>\n</code></pre></div>\n<p>フィールドが必須で <em>ない</em> ことを指定するには、<code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> コンストラクタに <code class=\"docutils literal notranslate\"><span class=\"pre\">required=False</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\">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\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"s2\">&quot;foo&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;foo&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"kc\">None</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;0&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;True&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;False&#39;</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\">required=False</span></code> が設定されていて、<code class=\"docutils literal notranslate\"><span class=\"pre\">clean()</span></code> に空の値を渡した場合、<code class=\"docutils literal notranslate\"><span class=\"pre\">clean()</span></code> は <code class=\"docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code> を発生させる代わりに、 <em>正規化された</em> 空の値を返します。<code class=\"docutils literal notranslate\"><span class=\"pre\">CharField</span></code> の場合、これは <a class=\"reference internal\" href=\"#django.forms.CharField.empty_value\" title=\"django.forms.CharField.empty_value\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">empty_value</span></code></a> を返し、デフォルトでは空の文字列となります。他の <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> クラスでは、<code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> になることもあります。(これはフィールドによって異なります。)</p>\n<p>必須フォームフィールドのウィジェットは、<code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code> HTML属性を持っています。これを無効にするには、 <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/api/#django.forms.Form.use_required_attribute\" title=\"django.forms.Form.use_required_attribute\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Form.use_required_attribute</span></code></a> 属性を <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> に設定します。フォームセットのフォームには、<code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code> 属性が含まれていません。これは、フォームセットの追加や削除を行う際にブラウザの検証が正しくない可能性があるためです。</p>\n</section>\n<section id=\"label\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">label</span></code><a class=\"heading-anchor\" href=\"#label\"><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.Field.label\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">label</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.label\"><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\">label</span></code> 属性は、フィールドに対する &quot;人が読みやすい&quot; ラベルを指定します。このラベルは <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> が <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> 内で表示されるときに使用されます。</p>\n<p><a class=\"reference internal\" href=\"/ja/5.1/ref/forms/api/#ref-forms-api-outputting-html\"><span class=\"std std-ref\">フォームをHTMLとしてアウトプットする</span></a> で説明されているように、<code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> のデフォルトのラベルは、フィールド名から生成され、すべてのアンダースコアがスペースに変換され、最初の文字が大文字にされます。このデフォルトの動作で適切なラベルを生成できない場合は、<code class=\"docutils literal notranslate\"><span class=\"pre\">label</span></code> を指定してください。</p>\n<p>以下は、2 つのフィールドに対して <code class=\"docutils literal notranslate\"><span class=\"pre\">label</span></code> を実装する <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> の完全な例です。出力を簡略化するために、 <code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id=False</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\">label</span><span class=\"o\">=</span><span class=\"s2\">&quot;Your name&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><span class=\"n\">label</span><span class=\"o\">=</span><span class=\"s2\">&quot;Your website&quot;</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>    <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\">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;Your name:&lt;input type=&quot;text&quot; name=&quot;name&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Your website:&lt;input type=&quot;url&quot; name=&quot;url&quot;&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</section>\n<section id=\"label-suffix\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">label_suffix</span></code><a class=\"heading-anchor\" href=\"#label-suffix\"><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.Field.label_suffix\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">label_suffix</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.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\">label_suffix</span></code> 引数を使用すると、フォームの <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/api/#django.forms.Form.label_suffix\" title=\"django.forms.Form.label_suffix\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">label_suffix</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=\"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=\"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>    <span class=\"n\">nationality</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\">captcha_answer</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">IntegerField</span><span class=\"p\">(</span><span class=\"n\">label</span><span class=\"o\">=</span><span class=\"s2\">&quot;2 + 2&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\">...</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\">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_age&quot;&gt;Age?&lt;/label&gt;&lt;input type=&quot;number&quot; name=&quot;age&quot; required id=&quot;id_age&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_nationality&quot;&gt;Nationality?&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;nationality&quot; required id=&quot;id_nationality&quot;&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_captcha_answer&quot;&gt;2 + 2 =&lt;/label&gt;&lt;input type=&quot;number&quot; name=&quot;captcha_answer&quot; required id=&quot;id_captcha_answer&quot;&gt;&lt;/div&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"initial\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">initial</span></code><a class=\"heading-anchor\" href=\"#initial\"><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.Field.initial\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">initial</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.initial\"><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\">initial</span></code> 属性は、<code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> が結びつけられていない <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> で表示されるときに使われる初期値を指定します。</p>\n<p>動的に初期値を指定する方法は、<a class=\"reference internal\" href=\"/ja/5.1/ref/forms/api/#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> パラメータを参照してください。</p>\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=\"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;Your name&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><span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"s2\">&quot;https://&quot;</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\">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;Your name&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; value=&quot;https://&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<p>初期値の辞書をフォームの表示時にデータとして渡すだけでよいのでは？と考えるかもしれません。しかし、それを行うとバリデーションがトリガーされ、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=\"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>\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\">default_data</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Your name&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;url&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;https://&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\">CommentForm</span><span class=\"p\">(</span><span class=\"n\">default_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;Name:</span>\n<span class=\"go\">  &lt;input type=&quot;text&quot; name=&quot;name&quot; value=&quot;Your name&quot; required&gt;</span>\n<span class=\"go\">&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Url:</span>\n<span class=\"go\">  &lt;ul class=&quot;errorlist&quot;&gt;&lt;li&gt;Enter a valid URL.&lt;/li&gt;&lt;/ul&gt;</span>\n<span class=\"go\">  &lt;input type=&quot;url&quot; name=&quot;url&quot; value=&quot;https://&quot; required aria-invalid=&quot;true&quot;&gt;</span>\n<span class=\"go\">&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Comment:</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;comment&quot; required aria-invalid=&quot;true&quot;&gt;</span>\n<span class=\"go\">&lt;/div&gt;</span>\n</code></pre></div>\n<p>これが、<code class=\"docutils literal notranslate\"><span class=\"pre\">initial</span></code> 値が未結合フォームにのみ表示される理由です。結合フォームの場合、HTML 出力は結合データを使用します。</p>\n<p>また、<code class=\"docutils literal notranslate\"><span class=\"pre\">initial</span></code> 値は、特定のフィールドの値が指定されていない場合に、バリデーション内で &quot;デフォルト&quot; データとして使用されません。<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=\"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;Your name&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><span class=\"n\">initial</span><span class=\"o\">=</span><span class=\"s2\">&quot;https://&quot;</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\">data</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;url&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;comment&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Foo&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\">CommentForm</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=\"go\"># The form does *not* fallback to using the initial values.</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\">{&#39;url&#39;: [&#39;This field is required.&#39;], &#39;name&#39;: [&#39;This field is 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=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">datetime</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">DateForm</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\">day</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">DateField</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\">date</span><span class=\"o\">.</span><span class=\"n\">today</span><span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">DateForm</span><span class=\"p\">())</span>\n<span class=\"go\">&lt;div&gt;&lt;label for=&quot;id_day&quot;&gt;Day:&lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;day&quot; value=&quot;2023-02-11&quot; required id=&quot;id_day&quot;&gt;&lt;/div&gt;</span>\n</code></pre></div>\n<p>呼び出し可能オブジェクトは、定義される時ではなく、未バインドの形式が表示される時にのみ評価されます。</p>\n</section>\n<section id=\"widget\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">widget</span></code><a class=\"heading-anchor\" href=\"#widget\"><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.Field.widget\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">widget</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.widget\"><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\">widget</span></code> 引数は、<code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> をレンダリングするときに使う <code class=\"docutils literal notranslate\"><span class=\"pre\">Widget</span></code> クラスを指定します。詳しくは <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/\"><span class=\"doc\">ウィジェット</span></a> を参照してください。</p>\n</section>\n<section id=\"help-text\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">help_text</span></code><a class=\"heading-anchor\" href=\"#help-text\"><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.Field.help_text\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">help_text</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.help_text\"><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\">help_text</span></code> 引数は、<code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> を説明するテキストを指定します。<code class=\"docutils literal notranslate\"><span class=\"pre\">help_text</span></code> を指定した場合、容易な <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> メソッド (たとえば <code class=\"docutils literal notranslate\"><span class=\"pre\">as_ul()</span></code>) で <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> がレンダリングされるときに、<code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> の隣に表示されます。</p>\n<p>モデルフィールドの <a class=\"reference internal\" href=\"/ja/5.1/ref/models/fields/#django.db.models.Field.help_text\" title=\"django.db.models.Field.help_text\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">help_text</span></code></a> と同じく、値は自動的に生成されるフォーム内で HTML 用にエスケープされません。</p>\n<p>以下は、2つのフィールドに <code class=\"docutils literal notranslate\"><span class=\"pre\">help_text</span></code> を実装した <code class=\"docutils literal notranslate\"><span class=\"pre\">Form</span></code> の完全な例です。出力を単純化するために <code class=\"docutils literal notranslate\"><span class=\"pre\">auto_id=False</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\">HelpTextContactForm</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\">subject</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\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">,</span> <span class=\"n\">help_text</span><span class=\"o\">=</span><span class=\"s2\">&quot;100 characters max.&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span>    <span class=\"n\">message</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\">sender</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">EmailField</span><span class=\"p\">(</span><span class=\"n\">help_text</span><span class=\"o\">=</span><span class=\"s2\">&quot;A valid email address, please.&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">... </span>    <span class=\"n\">cc_myself</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">BooleanField</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\">f</span> <span class=\"o\">=</span> <span class=\"n\">HelpTextContactForm</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;div class=&quot;helptext&quot;&gt;100 characters max.&lt;/div&gt;&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;input type=&quot;text&quot; name=&quot;message&quot; required&gt;&lt;/div&gt;</span>\n<span class=\"go\">&lt;div&gt;Sender:&lt;div class=&quot;helptext&quot;&gt;A valid email address, please.&lt;/div&gt;&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\">aria-describedby</span></code> HTML 属性を使用して入力と関連付けられます。ウィジェットが <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;fieldset&gt;</span></code> 内でレンダリングされる場合は、この属性が <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;fieldset&gt;</span></code> 要素に追加され、そうでない場合はウィジェットの <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input&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=\"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\">UserForm</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\">username</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\">max_length</span><span class=\"o\">=</span><span class=\"mi\">255</span><span class=\"p\">,</span> <span class=\"n\">help_text</span><span class=\"o\">=</span><span class=\"s2\">&quot;e.g., user@example.com&quot;</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\">UserForm</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;</span>\n<span class=\"go\">&lt;label for=&quot;id_username&quot;&gt;Username:&lt;/label&gt;</span>\n<span class=\"go\">&lt;div class=&quot;helptext&quot; id=&quot;id_username_helptext&quot;&gt;e.g., user@example.com&lt;/div&gt;</span>\n<span class=\"go\">&lt;input type=&quot;text&quot; name=&quot;username&quot; maxlength=&quot;255&quot; required aria-describedby=&quot;id_username_helptext&quot; id=&quot;id_username&quot;&gt;</span>\n<span class=\"go\">&lt;/div&gt;</span>\n</code></pre></div>\n<p>カスタム <code class=\"docutils literal notranslate\"><span class=\"pre\">aria-describedby</span></code> 属性を追加する際には、使用している場合は <code class=\"docutils literal notranslate\"><span class=\"pre\">help_text</span></code> 要素の <code class=\"docutils literal notranslate\"><span class=\"pre\">id</span></code> も希望する順序で含めることを確認してください。スクリーンリーダーのユーザーにとって、説明は <code class=\"docutils literal notranslate\"><span class=\"pre\">aria-describedby</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\">UserForm</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\">username</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\">max_length</span><span class=\"o\">=</span><span class=\"mi\">255</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>        <span class=\"n\">help_text</span><span class=\"o\">=</span><span class=\"s2\">&quot;e.g., user@example.com&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </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>\n<span class=\"gp\">... </span>            <span class=\"n\">attrs</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;aria-describedby&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;custom-description id_username_helptext&quot;</span><span class=\"p\">},</span>\n<span class=\"gp\">... </span>        <span class=\"p\">),</span>\n<span class=\"gp\">... </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\">UserForm</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;username&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">&lt;input type=&quot;text&quot; name=&quot;username&quot; aria-describedby=&quot;custom-description id_username_helptext&quot; maxlength=&quot;255&quot; id=&quot;id_username&quot; required&gt;</span>\n</code></pre></div>\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\">help_text</span></code> をその入力と関連付けるために、<code class=\"docutils literal notranslate\"><span class=\"pre\">aria-describedby</span></code> が追加されました。</p>\n</aside>\n<aside class=\"version-note version-changed\" data-version=\"5.1\">\n<p class=\"version-note-title\">Changed in Django 5.1</p><p><code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;fieldset&gt;</span></code> 要素に対する <code class=\"docutils literal notranslate\"><span class=\"pre\">aria-describedby</span></code> のサポートが追加されました。</p>\n</aside>\n</section>\n<section id=\"error-messages\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">error_messages</span></code><a class=\"heading-anchor\" href=\"#error-messages\"><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.Field.error_messages\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">error_messages</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.error_messages\"><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\">error_messages</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=\"n\">generic</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\">&gt;&gt;&gt; </span><span class=\"n\">generic</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">)</span>\n<span class=\"gt\">Traceback (most recent call last):</span>\n<span class=\"w\">  </span><span class=\"c\">...</span>\n<span class=\"gr\">ValidationError</span>: <span class=\"n\">[&#39;This field is 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\">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\">error_messages</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Please enter your name&quot;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">name</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">)</span>\n<span class=\"gt\">Traceback (most recent call last):</span>\n<span class=\"w\">  </span><span class=\"c\">...</span>\n<span class=\"gr\">ValidationError</span>: <span class=\"n\">[&#39;Please enter your name&#39;]</span>\n</code></pre></div>\n<p>以下の <a class=\"reference internal\" href=\"#built-in-field-classes\">built-in Field classes</a> セクションでは、各 <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> が使用するエラーメッセージのキーを定義しています。</p>\n</section>\n<section id=\"validators\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">validators</span></code><a class=\"heading-anchor\" href=\"#validators\"><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.Field.validators\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">validators</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.validators\"><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\">validators</span></code> 引数は、フィールドに対するバリデーション関数のリストを指定します。</p>\n<p>詳しくは <a class=\"reference internal\" href=\"/ja/5.1/ref/validators/\"><span class=\"doc\">バリデータのドキュメント</span></a> を参照してください。</p>\n</section>\n<section id=\"localize\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">localize</span></code><a class=\"heading-anchor\" href=\"#localize\"><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.Field.localize\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">localize</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.localize\"><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\">localize</span></code> 引数は、form データの入力とレンダリングした出力のローカライズを有効にします。</p>\n<p>詳細については、<a class=\"reference internal\" href=\"/ja/5.1/topics/i18n/formatting/\"><span class=\"doc\">フォーマットのローカライズに関するドキュメント</span></a> を参照してください。</p>\n</section>\n<section id=\"disabled\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">disabled</span></code><a class=\"heading-anchor\" href=\"#disabled\"><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.Field.disabled\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">disabled</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.disabled\"><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\">disabled</span></code> はブール値の引数を取ります。 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> にセットされた場合、フォームのフィールドを <code class=\"docutils literal notranslate\"><span class=\"pre\">disabled</span></code> HTML 属性を使って無効化し、ユーザーが編集できないようにします。たとえユーザーが勝手にフィールドの値を書き換えてサーバーに送信したとしても、フォームの初期データを使い、書き換えられたデータは無視します。</p>\n</section>\n<section id=\"template-name\">\n<h3><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></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.Field.template_name\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</span></span><span class=\"sig-name descname\"><span class=\"pre\">template_name</span></span><a class=\"heading-anchor\" href=\"#django.forms.Field.template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<aside class=\"version-note version-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\">template_name</span></code> 引数は、フィールドが <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/api/#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\">as_field_group()</span></code></a> でレンダリングされるときにカスタムテンプレートを使用できるようにします。デフォルトの値は <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;django/forms/field.html&quot;</span></code> に設定されています。この属性をオーバーライドするか、デフォルトテンプレートをオーバーライドすることで、フィールドごとに変更できます。詳細は、 <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/renderers/#overriding-built-in-field-templates\"><span class=\"std std-ref\">組み込みのフィールドテンプレートをオーバーライドする</span></a> も参照してください。</p>\n</section>\n</section>\n<section id=\"checking-if-the-field-data-has-changed\">\n<h2>フィールドのデータの変更チェック<a class=\"heading-anchor\" href=\"#checking-if-the-field-data-has-changed\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"has-changed\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">has_changed()</span></code><a class=\"heading-anchor\" href=\"#has-changed\"><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.Field.has_changed\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">Field.</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.Field.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> メソッドは、フィールドの値が最初の値から変更されたかどうかを確認するのに使用します。<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>詳しくは <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/api/#django.forms.Form.has_changed\" title=\"django.forms.Form.has_changed\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Form.has_changed()</span></code></a> ドキュメントを読んでください。</p>\n</section>\n</section>\n<section id=\"built-in-field-classes\">\n<span id=\"built-in-fields\"></span><h2>ビルトインの <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> クラス<a class=\"heading-anchor\" href=\"#built-in-field-classes\"><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\">forms</span></code> ライブラリには共通のバリデーションニーズを代表する一連の <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> クラスが含まれています。このセクションでは、各ビルトインフィールドについて説明します。</p>\n<p>各フィールドについて、<code class=\"docutils literal notranslate\"><span class=\"pre\">widget</span></code> を指定しない場合に使用されるデフォルトウィジェットを説明します。また、空の値を提供した場合に返される値も指定します（これがどういう意味かについては <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code> セクションを参照してください）。</p>\n<section id=\"booleanfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">BooleanField</span></code><a class=\"heading-anchor\" href=\"#booleanfield\"><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.BooleanField\">\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\">BooleanField</span></span><span class=\"sig-paren\">(</span><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.BooleanField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.CheckboxInput\" title=\"django.forms.CheckboxInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CheckboxInput</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p></li>\n<li><p>正規化後の値: Pythonの <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> または <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> になります。</p></li>\n<li><p>フィールドが <code class=\"docutils literal notranslate\"><span class=\"pre\">required=True</span></code> を持つ場合、値が <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> (例えば、チェックボックスがチェックされている)であることを確認します。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code></p></li>\n</ul>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">注釈</p>\n<p>すべての <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> のサブクラスはデフォルトで <code class=\"docutils literal notranslate\"><span class=\"pre\">required=True</span></code> ですので、ここでのバリデーション条件は重要です。フォームに True または False のどちらかであるブール値 (たとえば、チェックありまたはチェックなしのチェックボックス) を含めたい場合は、 <code class=\"docutils literal notranslate\"><span class=\"pre\">BooleanField</span></code> を作成する際に <code class=\"docutils literal notranslate\"><span class=\"pre\">required=False</span></code> を渡すことを忘れないでください。</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"charfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">CharField</span></code><a class=\"heading-anchor\" href=\"#charfield\"><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.CharField\">\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\">CharField</span></span><span class=\"sig-paren\">(</span><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.CharField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a></p></li>\n<li><p>空の値: <a class=\"reference internal\" href=\"#django.forms.CharField.empty_value\" title=\"django.forms.CharField.empty_value\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">empty_value</span></code></a> として与えたもの</p></li>\n<li><p>正規化後の値: 文字列になります。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">min_length</span></code> が与えられた場合は、<a class=\"reference internal\" href=\"/ja/5.1/ref/validators/#django.core.validators.MaxLengthValidator\" title=\"django.core.validators.MaxLengthValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MaxLengthValidator</span></code></a> と <a class=\"reference internal\" href=\"/ja/5.1/ref/validators/#django.core.validators.MinLengthValidator\" title=\"django.core.validators.MinLengthValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MinLengthValidator</span></code></a> を使用します。それ以外の場合は、すべての入力が有効です。</p></li>\n<li><p>エラーメッセージキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">min_length</span></code></p></li>\n</ul>\n<p>次のオプション引数がバリデーションに使用されます:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.CharField.max_length\">\n<span class=\"sig-name descname\"><span class=\"pre\">max_length</span></span><a class=\"heading-anchor\" href=\"#django.forms.CharField.max_length\"><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.CharField.min_length\">\n<span class=\"sig-name descname\"><span class=\"pre\">min_length</span></span><a class=\"heading-anchor\" href=\"#django.forms.CharField.min_length\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>これらの引数が提供された場合、文字列が与えられた長さ以下か以上であることを保証します。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.CharField.strip\">\n<span class=\"sig-name descname\"><span class=\"pre\">strip</span></span><a class=\"heading-anchor\" href=\"#django.forms.CharField.strip\"><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\">True</span></code> （デフォルト）の場合、値から先頭と末尾の空白が削除されます。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.CharField.empty_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">empty_value</span></span><a class=\"heading-anchor\" href=\"#django.forms.CharField.empty_value\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>「空」を表すのに使用する値です。デフォルトは空の文字列です。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"choicefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ChoiceField</span></code><a class=\"heading-anchor\" href=\"#choicefield\"><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.ChoiceField\">\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\">ChoiceField</span></span><span class=\"sig-paren\">(</span><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.ChoiceField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Select</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (空の文字列)</p></li>\n<li><p>正規化後の値: 文字列になります。</p></li>\n<li><p>指定された値が選択肢のリスト内に存在することを検証します。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code></p></li>\n</ul>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code> エラーメッセージには <code class=\"docutils literal notranslate\"><span class=\"pre\">%(value)s</span></code> が含まれていることがあり、選択された選択肢に置き換えられます。</p>\n<p>1つの追加引数を受け取ります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ChoiceField.choices\">\n<span class=\"sig-name descname\"><span class=\"pre\">choices</span></span><a class=\"heading-anchor\" href=\"#django.forms.ChoiceField.choices\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>このフィールドの選択肢として使用する2値タプルの <a class=\"reference external\" href=\"https://docs.python.org/3/glossary.html#term-iterable\" title=\"(in Python v3.14)\"><span class=\"xref std std-term\">iterable</span></a> 、 <a class=\"reference internal\" href=\"/ja/5.1/ref/models/fields/#field-choices-enum-types\"><span class=\"std std-ref\">列挙型</span></a> 、またはそのようなイテラブルを返す呼び出し可能オブジェクトのいずれか。この引数は、モデルフィールドの <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code> 引数と同じ形式を受け入れます。詳細については、 <a class=\"reference internal\" href=\"/ja/5.1/ref/models/fields/#field-choices\"><span class=\"std std-ref\">モデルフィールドのリファレンスドキュメント</span></a> を参照してください。引数が呼び出し可能オブジェクトの場合、フィールドのフォームが初期化されるたび、およびレンダリング中に評価されます。デフォルトは空のリストです。</p>\n</dd></dl>\n\n<aside class=\"admonition-choice-type admonition\">\n<p class=\"admonition-title\">選択肢 (Choice) 型</p>\n<p>このフィールドは選択肢を文字列に正規化するため、整数やブール値など、他のデータ型で選択肢が必要な場合は、代わりに <a class=\"reference internal\" href=\"#django.forms.TypedChoiceField\" title=\"django.forms.TypedChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TypedChoiceField</span></code></a> を使用することを検討してください。</p>\n</aside>\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\">choices</span></code> で直接 <a class=\"reference internal\" href=\"/ja/5.1/ref/models/fields/#field-choices-enum-types\"><span class=\"std std-ref\">列挙型(enum types)</span></a> を使用する機能が追加されました。</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"datefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DateField</span></code><a class=\"heading-anchor\" href=\"#datefield\"><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.DateField\">\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\">DateField</span></span><span class=\"sig-paren\">(</span><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.DateField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.DateInput\" title=\"django.forms.DateInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateInput</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>正規化後の値: Python の <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.date</span></code> オブジェクトになります。</p></li>\n<li><p>与えられた値が <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.date</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.datetime</span></code> または特定の日付の表示形式のどれかに当てはまるか検証します。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code></p></li>\n</ul>\n<p>1 つの省略可能な引数を取ります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DateField.input_formats\">\n<span class=\"sig-name descname\"><span class=\"pre\">input_formats</span></span><a class=\"heading-anchor\" href=\"#django.forms.DateField.input_formats\"><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\">datetime.date</span></code> オブジェクトに変換しようとする際に使用されるフォーマットのイテラブル。</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">input_formats</span></code> 引数が指定されていない場合、デフォルトの入力形式は有効なロケール形式の <code class=\"docutils literal notranslate\"><span class=\"pre\">DATE_INPUT_FORMATS</span></code> キーから取得されるか、ローカライズが無効になっている場合は <a class=\"reference internal\" href=\"/ja/5.1/ref/settings/#std-setting-DATE_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATE_INPUT_FORMATS</span></code></a> から取得されます。また、 <a class=\"reference internal\" href=\"/ja/5.1/topics/i18n/formatting/\"><span class=\"doc\">表示形式のローカライズ</span></a> も参照してください。</p>\n</dd></dl>\n\n</section>\n<section id=\"datetimefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code><a class=\"heading-anchor\" href=\"#datetimefield\"><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.DateTimeField\">\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\">DateTimeField</span></span><span class=\"sig-paren\">(</span><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.DateTimeField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.DateTimeInput\" title=\"django.forms.DateTimeInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateTimeInput</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>正規化後の値: Python の <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.datetime</span></code> オブジェクトになります。</p></li>\n<li><p>与えられた値が <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.datetime</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.date</span></code> または特定の日時の表示形式の文字列のどれかに当てはまるか検証します。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code></p></li>\n</ul>\n<p>1 つの省略可能な引数を取ります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DateTimeField.input_formats\">\n<span class=\"sig-name descname\"><span class=\"pre\">input_formats</span></span><a class=\"heading-anchor\" href=\"#django.forms.DateTimeField.input_formats\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>ISO 8601 形式に加えて、文字列を有効な <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.datetime</span></code> オブジェクトに変換しようと試みる際に使用される形式のイテラブル。</p>\n</dd></dl>\n\n<p>このフィールドは常に、ISO 8601形式の日付や <a class=\"reference internal\" href=\"/ja/5.1/ref/utils/#django.utils.dateparse.parse_datetime\" title=\"django.utils.dateparse.parse_datetime\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">parse_datetime()</span></code></a> で認識される類似の形式の文字列を受け付けます。いくつかの例を挙げます:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'2006-10-25</span> <span class=\"pre\">14:30:59'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'2006-10-25T14:30:59'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'2006-10-25</span> <span class=\"pre\">14:30'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'2006-10-25T14:30'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'2006-10-25T14:30Z'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'2006-10-25T14:30+02:00'</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'2006-10-25'</span></code></p></li>\n</ul>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">input_formats</span></code> 引数が提供されない場合、デフォルトの入力フォーマットはアクティブなロケールフォーマットの <code class=\"docutils literal notranslate\"><span class=\"pre\">DATETIME_INPUT_FORMATS</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">DATE_INPUT_FORMATS</span></code> キーから取得されます。もしくは、ローカライズが無効の場合は <a class=\"reference internal\" href=\"/ja/5.1/ref/settings/#std-setting-DATETIME_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATETIME_INPUT_FORMATS</span></code></a> と <a class=\"reference internal\" href=\"/ja/5.1/ref/settings/#std-setting-DATE_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATE_INPUT_FORMATS</span></code></a> から取得されます。また、表示形式のローカライズについては <a class=\"reference internal\" href=\"/ja/5.1/topics/i18n/formatting/\"><span class=\"doc\">表示形式のローカライズ</span></a> も参照してください。</p>\n</dd></dl>\n\n</section>\n<section id=\"decimalfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DecimalField</span></code><a class=\"heading-anchor\" href=\"#decimalfield\"><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.DecimalField\">\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\">DecimalField</span></span><span class=\"sig-paren\">(</span><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.DecimalField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"#django.forms.Field.localize\" title=\"django.forms.Field.localize\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Field.localize</span></code></a> が <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> のとき <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.NumberInput\" title=\"django.forms.NumberInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">NumberInput</span></code></a>、<code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> のとき <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a>.</p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>正規化後の値: Python の <code class=\"docutils literal notranslate\"><span class=\"pre\">decimal</span></code> になります。</p></li>\n<li><p>指定された値が10進数であることを検証します。 <code class=\"docutils literal notranslate\"><span class=\"pre\">max_value</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code> が提供されている場合は <a class=\"reference internal\" href=\"/ja/5.1/ref/validators/#django.core.validators.MaxValueValidator\" title=\"django.core.validators.MaxValueValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MaxValueValidator</span></code></a> および <a class=\"reference internal\" href=\"/ja/5.1/ref/validators/#django.core.validators.MinValueValidator\" title=\"django.core.validators.MinValueValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MinValueValidator</span></code></a> を使用します。 <code class=\"docutils literal notranslate\"><span class=\"pre\">step_size</span></code> が提供されている場合は <a class=\"reference internal\" href=\"/ja/5.1/ref/validators/#django.core.validators.StepValueValidator\" title=\"django.core.validators.StepValueValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">StepValueValidator</span></code></a> を使用します。先頭及び末尾の空白は無視されます。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">max_value</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">max_digits</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">max_decimal_places</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">max_whole_digits</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">step_size</span></code> 。</p></li>\n</ul>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">max_value</span></code> および <code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code> のエラーメッセージには <code class=\"docutils literal notranslate\"><span class=\"pre\">%(limit_value)s</span></code> が含まれる場合があり、これは適切な制限値に置き換えられます。同様に、<code class=\"docutils literal notranslate\"><span class=\"pre\">max_digits</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">max_decimal_places</span></code>、および <code class=\"docutils literal notranslate\"><span class=\"pre\">max_whole_digits</span></code> のエラーメッセージには <code class=\"docutils literal notranslate\"><span class=\"pre\">%(max)s</span></code> が含まれる場合があります。</p>\n<p>5つのオプション引数を受け取ります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DecimalField.max_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">max_value</span></span><a class=\"heading-anchor\" href=\"#django.forms.DecimalField.max_value\"><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.DecimalField.min_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">min_value</span></span><a class=\"heading-anchor\" href=\"#django.forms.DecimalField.min_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\">decimal.Decimal</span></code> 値として指定する必要があります。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DecimalField.max_digits\">\n<span class=\"sig-name descname\"><span class=\"pre\">max_digits</span></span><a class=\"heading-anchor\" href=\"#django.forms.DecimalField.max_digits\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>値で許容される桁数の最大値 (小数点より前と小数点より後の桁数を合わせ、先頭のゼロは除く)。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DecimalField.decimal_places\">\n<span class=\"sig-name descname\"><span class=\"pre\">decimal_places</span></span><a class=\"heading-anchor\" href=\"#django.forms.DecimalField.decimal_places\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>許可される小数点以下の最大桁数。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.DecimalField.step_size\">\n<span class=\"sig-name descname\"><span class=\"pre\">step_size</span></span><a class=\"heading-anchor\" href=\"#django.forms.DecimalField.step_size\"><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\">step_size</span></code> の整数倍に制限します。もし <code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code> も指定されている場合、その値をオフセットとして加算し、ステップサイズが一致しているかを判断します。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"durationfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DurationField</span></code><a class=\"heading-anchor\" href=\"#durationfield\"><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.DurationField\">\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\">DurationField</span></span><span class=\"sig-paren\">(</span><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.DurationField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>正規化後の値: Python の <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.timedelta\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">timedelta</span></code></a> になります。</p></li>\n<li><p>指定された値が <code class=\"docutils literal notranslate\"><span class=\"pre\">timedelta</span></code> に変換できる文字列であることを検証します。値は <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.timedelta.min\" title=\"(in Python v3.14)\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">datetime.timedelta.min</span></code></a> と <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.timedelta.max\" title=\"(in Python v3.14)\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">datetime.timedelta.max</span></code></a> の間でなければなりません。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">overflow</span></code> 。</p></li>\n</ul>\n<p><a class=\"reference internal\" href=\"/ja/5.1/ref/utils/#django.utils.dateparse.parse_duration\" title=\"django.utils.dateparse.parse_duration\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">parse_duration()</span></code></a> が理解できるどんな形式でも受け入れます。</p>\n</dd></dl>\n\n</section>\n<section id=\"emailfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">EmailField</span></code><a class=\"heading-anchor\" href=\"#emailfield\"><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.EmailField\">\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\">EmailField</span></span><span class=\"sig-paren\">(</span><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.EmailField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.EmailInput\" title=\"django.forms.EmailInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">EmailInput</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value</span></code> として指定したものです。</p></li>\n<li><p>正規化後の値: 文字列になります。</p></li>\n<li><p><a class=\"reference internal\" href=\"/ja/5.1/ref/validators/#django.core.validators.EmailValidator\" title=\"django.core.validators.EmailValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">EmailValidator</span></code></a> を使用して、与えられた値が有効なメールアドレスであることを、比較的複雑な正規表現を使用してバリデーションします。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code></p></li>\n</ul>\n<p>オプション引数として <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">min_length</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value</span></code> があり、<a class=\"reference internal\" href=\"#django.forms.CharField\" title=\"django.forms.CharField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CharField</span></code></a> と同じように機能します。 <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code> 引数のデフォルト値は320です( <span class=\"target\" id=\"index-4\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc3696.html#section-3\"><strong>RFC 3696 Section 3</strong></a> を参照)。</p>\n</dd></dl>\n\n</section>\n<section id=\"filefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">FileField</span></code><a class=\"heading-anchor\" href=\"#filefield\"><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.FileField\">\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\">FileField</span></span><span class=\"sig-paren\">(</span><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.FileField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.ClearableFileInput\" title=\"django.forms.ClearableFileInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ClearableFileInput</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>ファイルコンテンツとファイル名を1つのオブジェクトにラッピングした <code class=\"docutils literal notranslate\"><span class=\"pre\">UploadedFile</span></code> オブジェクトに正規化されます。</p></li>\n<li><p>フォームに空でないファイルデータがバインドされていることをバリデーションできます。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">missing</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">empty</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code></p></li>\n</ul>\n<p>バリデーションのためのオプション引数には <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">allow_empty_file</span></code> があります。もしこれらが指定された場合、ファイル名は与えられた長さ以下でなければならず、ファイルの内容が空でもバリデーションは成功します。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">UploadedFile</span></code> オブジェクトについて詳しく知るには、 <a class=\"reference internal\" href=\"/ja/5.1/topics/http/file-uploads/\"><span class=\"doc\">ファイルのアップロードのドキュメント</span></a> を読んでください。</p>\n<p>フォーム内で <code class=\"docutils literal notranslate\"><span class=\"pre\">FileField</span></code> を使用する時は、<a class=\"reference internal\" href=\"/ja/5.1/ref/forms/api/#binding-uploaded-files\"><span class=\"std std-ref\">ファイルのデータをフォームにバインド</span></a> することも必要です。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code> エラーは、ファイル名の長さに関連しています。そのキーのエラーメッセージでは、<code class=\"docutils literal notranslate\"><span class=\"pre\">%(max)d</span></code> は最大ファイル名長さに置き換えられ、<code class=\"docutils literal notranslate\"><span class=\"pre\">%(length)d</span></code> は現在のファイル名の長さに置き換えられます。</p>\n</dd></dl>\n\n</section>\n<section id=\"filepathfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">FilePathField</span></code><a class=\"heading-anchor\" href=\"#filepathfield\"><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.FilePathField\">\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\">FilePathField</span></span><span class=\"sig-paren\">(</span><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.FilePathField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Select</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (空の文字列)</p></li>\n<li><p>正規化後の値: 文字列になります。</p></li>\n<li><p>選択された選択肢が選択肢のリストに存在することを検証します。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code></p></li>\n</ul>\n<p>このフィールドは、特定のディレクトリ内のファイルから選択することを可能にします。5つの追加引数を受け取りますが、<code class=\"docutils literal notranslate\"><span class=\"pre\">path</span></code> のみが必須です:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.FilePathField.path\">\n<span class=\"sig-name descname\"><span class=\"pre\">path</span></span><a class=\"heading-anchor\" href=\"#django.forms.FilePathField.path\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>リストアップしたいディレクトリの絶対パス。このディレクトリは存在していなければなりません。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.FilePathField.recursive\">\n<span class=\"sig-name descname\"><span class=\"pre\">recursive</span></span><a class=\"heading-anchor\" href=\"#django.forms.FilePathField.recursive\"><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\">False</span></code> (デフォルト) の場合、<code class=\"docutils literal notranslate\"><span class=\"pre\">path</span></code> の直接の内容のみが選択肢として提示されます。<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.FilePathField.match\">\n<span class=\"sig-name descname\"><span class=\"pre\">match</span></span><a class=\"heading-anchor\" href=\"#django.forms.FilePathField.match\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>正規表現パターンです。この表現と一致する名前のファイルのみが選択肢として許可されます。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.FilePathField.allow_files\">\n<span class=\"sig-name descname\"><span class=\"pre\">allow_files</span></span><a class=\"heading-anchor\" href=\"#django.forms.FilePathField.allow_files\"><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\">True</span></code> または <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> のいずれかを指定します。デフォルトは <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> です。指定された場所のファイルを含めるかどうかを指定します。これか <a class=\"reference internal\" href=\"#django.forms.FilePathField.allow_folders\" title=\"django.forms.FilePathField.allow_folders\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_folders</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.FilePathField.allow_folders\">\n<span class=\"sig-name descname\"><span class=\"pre\">allow_folders</span></span><a class=\"heading-anchor\" href=\"#django.forms.FilePathField.allow_folders\"><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\">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> です。指定された場所のフォルダを含めるかどうかを指定します。これか <a class=\"reference internal\" href=\"#django.forms.FilePathField.allow_files\" title=\"django.forms.FilePathField.allow_files\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_files</span></code></a> のいずれかが <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> でなければなりません。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"floatfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">FloatField</span></code><a class=\"heading-anchor\" href=\"#floatfield\"><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.FloatField\">\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\">FloatField</span></span><span class=\"sig-paren\">(</span><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.FloatField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"#django.forms.Field.localize\" title=\"django.forms.Field.localize\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Field.localize</span></code></a> が <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> のとき <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.NumberInput\" title=\"django.forms.NumberInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">NumberInput</span></code></a>、<code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> のとき <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a>.</p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>正規化後の値: Python の float になります。</p></li>\n<li><p>指定された値が float であることを検証します。 <code class=\"docutils literal notranslate\"><span class=\"pre\">max_value</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code> が提供されている場合は <a class=\"reference internal\" href=\"/ja/5.1/ref/validators/#django.core.validators.MaxValueValidator\" title=\"django.core.validators.MaxValueValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MaxValueValidator</span></code></a> と <a class=\"reference internal\" href=\"/ja/5.1/ref/validators/#django.core.validators.MinValueValidator\" title=\"django.core.validators.MinValueValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MinValueValidator</span></code></a> を使用します。<code class=\"docutils literal notranslate\"><span class=\"pre\">step_size</span></code> が提供されている場合は <a class=\"reference internal\" href=\"/ja/5.1/ref/validators/#django.core.validators.StepValueValidator\" title=\"django.core.validators.StepValueValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">StepValueValidator</span></code></a> を使用します。Python の <code class=\"docutils literal notranslate\"><span class=\"pre\">float()</span></code> 関数と同様、先頭と末尾の空白は許可されます。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">max_value</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">step_size</span></code> 。</p></li>\n</ul>\n<p>オプションで3つの引数を取ります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.FloatField.max_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">max_value</span></span><a class=\"heading-anchor\" href=\"#django.forms.FloatField.max_value\"><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.FloatField.min_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">min_value</span></span><a class=\"heading-anchor\" href=\"#django.forms.FloatField.min_value\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>これらは、フィールドに許可される値の範囲を制御します。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.FloatField.step_size\">\n<span class=\"sig-name descname\"><span class=\"pre\">step_size</span></span><a class=\"heading-anchor\" href=\"#django.forms.FloatField.step_size\"><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\">step_size</span></code> の整数倍に制限します。もし <code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code> も指定されている場合、その値をオフセットとして加算し、ステップサイズが一致しているかを判断します。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"genericipaddressfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">GenericIPAddressField</span></code><a class=\"heading-anchor\" href=\"#genericipaddressfield\"><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.GenericIPAddressField\">\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\">GenericIPAddressField</span></span><span class=\"sig-paren\">(</span><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.GenericIPAddressField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>IPv4 または IPv6 アドレスのいずれかを持つフィールドです。</p>\n<ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (空の文字列)</p></li>\n<li><p>正規化後の値: 文字列。以下の説明に従って、IPv6 アドレスは正規化されます。</p></li>\n<li><p>与えられた値が有効な IP アドレスを表しているか検証します。</p></li>\n<li><p>Error message keys: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code></p></li>\n</ul>\n<p>IPv6 アドレスは、 <span class=\"target\" id=\"index-5\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc4291.html#section-2.2\"><strong>RFC 4291 Section 2.2</strong></a> section 2.2 (同セクションの paragraph 3 で提案された IPv4 のフォーマットの使用を含む) にしたがって、 <code class=\"docutils literal notranslate\"><span class=\"pre\">::ffff:192.0.2.0</span></code> のように正規化します。たとえば、 <code class=\"docutils literal notranslate\"><span class=\"pre\">2001:0::0:01</span></code> は <code class=\"docutils literal notranslate\"><span class=\"pre\">2001::1</span></code> と正規化され、 <code class=\"docutils literal notranslate\"><span class=\"pre\">::ffff:0a0a:0a0a</span></code> は <code class=\"docutils literal notranslate\"><span class=\"pre\">::ffff:10.10.10.10</span></code> と正規化されます。そして、すべての文字は小文字に変換されます。</p>\n<p>オプションで3つの引数を取ります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.GenericIPAddressField.protocol\">\n<span class=\"sig-name descname\"><span class=\"pre\">protocol</span></span><a class=\"heading-anchor\" href=\"#django.forms.GenericIPAddressField.protocol\"><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\">both</span></code> (デフォルト)、 <code class=\"docutils literal notranslate\"><span class=\"pre\">IPv4</span></code> または <code class=\"docutils literal notranslate\"><span class=\"pre\">IPv6</span></code> です。大文字・小文字は無視されます。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.GenericIPAddressField.unpack_ipv4\">\n<span class=\"sig-name descname\"><span class=\"pre\">unpack_ipv4</span></span><a class=\"heading-anchor\" href=\"#django.forms.GenericIPAddressField.unpack_ipv4\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>IPv4 にマッピングされた <code class=\"docutils literal notranslate\"><span class=\"pre\">::ffff:192.0.2.1</span></code> のようなアドレスをアンパックします。このオプションを有効にすると、このアドレスは <code class=\"docutils literal notranslate\"><span class=\"pre\">192.0.2.1</span></code> とアンパックされます。デフォルトは無効です。<code class=\"docutils literal notranslate\"><span class=\"pre\">protocol</span></code> が <code class=\"docutils literal notranslate\"><span class=\"pre\">'both'</span></code> に設定されている場合にだけ使用できます。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.GenericIPAddressField.max_length\">\n<span class=\"sig-name descname\"><span class=\"pre\">max_length</span></span><a class=\"heading-anchor\" href=\"#django.forms.GenericIPAddressField.max_length\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Defaults to 39, and behaves the same way as it does for\n<a class=\"reference internal\" href=\"#django.forms.CharField\" title=\"django.forms.CharField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CharField</span></code></a>.</p>\n</dd></dl>\n\n<aside class=\"version-note version-changed\" data-version=\"4.2.18\">\n<p class=\"version-note-title\">Changed in Django 4.2.18</p><p>The default value for <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code> was set to 39 characters.</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"imagefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ImageField</span></code><a class=\"heading-anchor\" href=\"#imagefield\"><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.ImageField\">\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\">ImageField</span></span><span class=\"sig-paren\">(</span><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.ImageField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.ClearableFileInput\" title=\"django.forms.ClearableFileInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ClearableFileInput</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>ファイルコンテンツとファイル名を1つのオブジェクトにラッピングした <code class=\"docutils literal notranslate\"><span class=\"pre\">UploadedFile</span></code> オブジェクトに正規化されます。</p></li>\n<li><p>ファイルデータがフォームにバインドされたことを検証します。また、 <a class=\"reference internal\" href=\"/ja/5.1/ref/validators/#django.core.validators.FileExtensionValidator\" title=\"django.core.validators.FileExtensionValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">FileExtensionValidator</span></code></a> を使用して、ファイルの拡張子が Pillow でサポートされているかを検証します。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">missing</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">empty</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_image</span></code></p></li>\n</ul>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ImageField</span></code> を使用するには、使用する画像形式に対応した <a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/pillow/\">pillow</a> がインストールされている必要があります。画像をアップロードした際に <code class=\"docutils literal notranslate\"><span class=\"pre\">corrupt</span> <span class=\"pre\">image</span></code> エラーが発生した場合、それは通常 Pillow がその形式を理解していないことを意味します。これを修正するには、適切なライブラリをインストールし、Pillow を再インストールしてください。</p>\n<p>フォームで <code class=\"docutils literal notranslate\"><span class=\"pre\">ImageField</span></code> を使用する場合、<a class=\"reference internal\" href=\"/ja/5.1/ref/forms/api/#binding-uploaded-files\"><span class=\"std std-ref\">フォームにファイルデータをバインドする</span></a> 必要も覚えておいてください。</p>\n<p>フィールドがクリーンアップされ、バリデーションされた後、<code class=\"docutils literal notranslate\"><span class=\"pre\">UploadedFile</span></code> オブジェクトには、ファイルが有効な画像であるかを確認するために使用されたPillowの <a class=\"reference external\" href=\"https://pillow.readthedocs.io/en/latest/reference/Image.html\">Image</a> インスタンスを含む追加の <code class=\"docutils literal notranslate\"><span class=\"pre\">image</span></code> 属性があります。Pillow は画像を検証した後にベースとなるファイルディスクリプタを閉じるため、<code class=\"docutils literal notranslate\"><span class=\"pre\">format</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">height</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">width</span></code> などの非画像データ属性は使用可能ですが、<code class=\"docutils literal notranslate\"><span class=\"pre\">getdata()</span></code> や <code class=\"docutils literal notranslate\"><span class=\"pre\">getpixel()</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\">PIL</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Image</span>\n<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=\"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=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ImageForm</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\">img</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ImageField</span><span class=\"p\">()</span>\n<span class=\"gp\">...</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;img&quot;</span><span class=\"p\">:</span> <span class=\"n\">SimpleUploadedFile</span><span class=\"p\">(</span><span class=\"s2\">&quot;test.png&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\">form</span> <span class=\"o\">=</span> <span class=\"n\">ImageForm</span><span class=\"p\">({},</span> <span class=\"n\">file_data</span><span class=\"p\">)</span>\n<span class=\"go\"># Pillow closes the underlying file descriptor.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">form</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\">image_field</span> <span class=\"o\">=</span> <span class=\"n\">form</span><span class=\"o\">.</span><span class=\"n\">cleaned_data</span><span class=\"p\">[</span><span class=\"s2\">&quot;img&quot;</span><span class=\"p\">]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">image_field</span><span class=\"o\">.</span><span class=\"n\">image</span>\n<span class=\"go\">&lt;PIL.PngImagePlugin.PngImageFile image mode=RGBA size=191x287 at 0x7F5985045C18&gt;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">image_field</span><span class=\"o\">.</span><span class=\"n\">image</span><span class=\"o\">.</span><span class=\"n\">width</span>\n<span class=\"go\">191</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">image_field</span><span class=\"o\">.</span><span class=\"n\">image</span><span class=\"o\">.</span><span class=\"n\">height</span>\n<span class=\"go\">287</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">image_field</span><span class=\"o\">.</span><span class=\"n\">image</span><span class=\"o\">.</span><span class=\"n\">format</span>\n<span class=\"go\">&#39;PNG&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">image_field</span><span class=\"o\">.</span><span class=\"n\">image</span><span class=\"o\">.</span><span class=\"n\">getdata</span><span class=\"p\">()</span>\n<span class=\"go\"># Raises AttributeError: &#39;NoneType&#39; object has no attribute &#39;seek&#39;.</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">image</span> <span class=\"o\">=</span> <span class=\"n\">Image</span><span class=\"o\">.</span><span class=\"n\">open</span><span class=\"p\">(</span><span class=\"n\">image_field</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">image</span><span class=\"o\">.</span><span class=\"n\">getdata</span><span class=\"p\">()</span>\n<span class=\"go\">&lt;ImagingCore object at 0x7f5984f874b0&gt;</span>\n</code></pre></div>\n<p>さらに、Pillowが画像のコンテンツタイプを特定できる場合には、<code class=\"docutils literal notranslate\"><span class=\"pre\">UploadedFile.content_type</span></code> は画像のコンテンツタイプで更新されます。それ以外の場合は、<code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> に設定されます。</p>\n</dd></dl>\n\n</section>\n<section id=\"integerfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">IntegerField</span></code><a class=\"heading-anchor\" href=\"#integerfield\"><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.IntegerField\">\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\">IntegerField</span></span><span class=\"sig-paren\">(</span><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.IntegerField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"#django.forms.Field.localize\" title=\"django.forms.Field.localize\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Field.localize</span></code></a> が <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> のとき <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.NumberInput\" title=\"django.forms.NumberInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">NumberInput</span></code></a>、<code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> のとき <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a>.</p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>正規化後の値: Python の整数になります。</p></li>\n<li><p>与えられた値が整数であることを検証します。<code class=\"docutils literal notranslate\"><span class=\"pre\">max_value</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code> が提供されている場合は <a class=\"reference internal\" href=\"/ja/5.1/ref/validators/#django.core.validators.MaxValueValidator\" title=\"django.core.validators.MaxValueValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MaxValueValidator</span></code></a> と <a class=\"reference internal\" href=\"/ja/5.1/ref/validators/#django.core.validators.MinValueValidator\" title=\"django.core.validators.MinValueValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MinValueValidator</span></code></a> を使用します。<code class=\"docutils literal notranslate\"><span class=\"pre\">step_size</span></code> が提供されている場合は <a class=\"reference internal\" href=\"/ja/5.1/ref/validators/#django.core.validators.StepValueValidator\" title=\"django.core.validators.StepValueValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">StepValueValidator</span></code></a> を使用します。Python の <code class=\"docutils literal notranslate\"><span class=\"pre\">int()</span></code> 関数と同様、先頭と末尾の空白は許可されます。</p></li>\n<li><p>エラーメッセージキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">max_value</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">step_size</span></code></p></li>\n</ul>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">max_value</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code>、および <code class=\"docutils literal notranslate\"><span class=\"pre\">step_size</span></code> のエラーメッセージには、<code class=\"docutils literal notranslate\"><span class=\"pre\">%(limit_value)s</span></code> が含まれることがあり、これは適切な制限値に置き換えられます。</p>\n<p>バリデーションのために、3つのオプション引数を受け取ります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.IntegerField.max_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">max_value</span></span><a class=\"heading-anchor\" href=\"#django.forms.IntegerField.max_value\"><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.IntegerField.min_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">min_value</span></span><a class=\"heading-anchor\" href=\"#django.forms.IntegerField.min_value\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>これらは、フィールドに許可される値の範囲を制御します。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.IntegerField.step_size\">\n<span class=\"sig-name descname\"><span class=\"pre\">step_size</span></span><a class=\"heading-anchor\" href=\"#django.forms.IntegerField.step_size\"><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\">step_size</span></code> の整数倍に制限します。もし <code class=\"docutils literal notranslate\"><span class=\"pre\">min_value</span></code> も指定されている場合、その値をオフセットとして加算し、ステップサイズが一致しているかを判断します。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"jsonfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">JSONField</span></code><a class=\"heading-anchor\" href=\"#jsonfield\"><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.JSONField\">\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\">JSONField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">encoder</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\">decoder</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.JSONField\"><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.1/ref/models/fields/#django.db.models.JSONField\" title=\"django.db.models.JSONField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">JSONField</span></code></a> 用の、JSON エンコードされたデータを受け入れるフィールドです。</p>\n<ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.Textarea\" title=\"django.forms.Textarea\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Textarea</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>正規化後の値: <a class=\"reference internal\" href=\"#django.forms.JSONField.decoder\" title=\"django.forms.JSONField.decoder\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">JSONField.decoder</span></code></a> に依存して、JSON 値の Python 表現 (通常は <code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code>、または <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>) に正規化されます。</p></li>\n<li><p>与えられた値が有効な JSON であることを検証します。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code></p></li>\n</ul>\n<p>次の2つの省略可能な引数を取ります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.JSONField.encoder\">\n<span class=\"sig-name descname\"><span class=\"pre\">encoder</span></span><a class=\"heading-anchor\" href=\"#django.forms.JSONField.encoder\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>標準のJSONシリアライザがサポートしていないデータ型 (<code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.datetime</span></code> や <a class=\"reference external\" href=\"https://docs.python.org/3/library/uuid.html#uuid.UUID\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">UUID</span></code></a> など) をシリアライズするための <a class=\"reference external\" href=\"https://docs.python.org/3/library/json.html#json.JSONEncoder\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">json.JSONEncoder</span></code></a> のサブクラスです。例えば、 <a class=\"reference internal\" href=\"/ja/5.1/topics/serialization/#django.core.serializers.json.DjangoJSONEncoder\" title=\"django.core.serializers.json.DjangoJSONEncoder\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DjangoJSONEncoder</span></code></a> クラスを使用できます。</p>\n<p>デフォルトは <code class=\"docutils literal notranslate\"><span class=\"pre\">json.JSONEncoder</span></code> です。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.JSONField.decoder\">\n<span class=\"sig-name descname\"><span class=\"pre\">decoder</span></span><a class=\"heading-anchor\" href=\"#django.forms.JSONField.decoder\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>入力をデシリアライズするための <a class=\"reference external\" href=\"https://docs.python.org/3/library/json.html#json.JSONDecoder\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">json.JSONDecoder</span></code></a> のサブクラスです。デシリアライズでは、入力タイプを確実に把握できないという事実に対応する必要があります。例えば、<code class=\"docutils literal notranslate\"><span class=\"pre\">datetime</span></code> 形式と同じ形式を持つ文字列が、実際には <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime</span></code> として返されるリスクがあります。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">decoder</span></code> を使用して入力をバリデーションできます。デシリアライズ中に <a class=\"reference external\" href=\"https://docs.python.org/3/library/json.html#json.JSONDecodeError\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">json.JSONDecodeError</span></code></a> が発生した場合は、<code class=\"docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code> が発生します。</p>\n<p>デフォルトは <code class=\"docutils literal notranslate\"><span class=\"pre\">json.JSONDecoder</span></code> です。</p>\n</dd></dl>\n\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">注釈</p>\n<p><a class=\"reference internal\" href=\"/ja/5.1/topics/forms/modelforms/#django.forms.ModelForm\" title=\"django.forms.ModelForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelForm</span></code></a> を使用する場合、<a class=\"reference internal\" href=\"/ja/5.1/ref/models/fields/#django.db.models.JSONField\" title=\"django.db.models.JSONField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">JSONField</span></code></a> からの <code class=\"docutils literal notranslate\"><span class=\"pre\">encoder</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">decoder</span></code> が使用されます。</p>\n</aside>\n<aside class=\"admonition-user-friendly-forms admonition\">\n<p class=\"admonition-title\">ユーザーフレンドリーなフォーム</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">JSONField</span></code> は多くの場合、ユーザーフレンドリーとは言えません。しかし、クライアントサイドのウィジェットからサーバーに送信するためのデータをフォーマットする便利な方法です。</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"multiplechoicefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MultipleChoiceField</span></code><a class=\"heading-anchor\" href=\"#multiplechoicefield\"><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.MultipleChoiceField\">\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\">MultipleChoiceField</span></span><span class=\"sig-paren\">(</span><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.MultipleChoiceField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.SelectMultiple\" title=\"django.forms.SelectMultiple\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SelectMultiple</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> (空のリスト)</p></li>\n<li><p>正規化後の値: 文字列のリストになります。</p></li>\n<li><p>与えられた値のリストの各値が、選択肢のリストに存在することを検証します。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_list</span></code></p></li>\n</ul>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code> エラーメッセージには <code class=\"docutils literal notranslate\"><span class=\"pre\">%(value)s</span></code> が含まれていることがあり、選択された選択肢に置き換えられます。</p>\n<p><a class=\"reference internal\" href=\"#django.forms.ChoiceField\" title=\"django.forms.ChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ChoiceField</span></code></a> のために、1つの追加の必須引数 <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code> を取ります。</p>\n</dd></dl>\n\n</section>\n<section id=\"nullbooleanfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">NullBooleanField</span></code><a class=\"heading-anchor\" href=\"#nullbooleanfield\"><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.NullBooleanField\">\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\">NullBooleanField</span></span><span class=\"sig-paren\">(</span><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.NullBooleanField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.NullBooleanSelect\" title=\"django.forms.NullBooleanSelect\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">NullBooleanSelect</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>正規化後の値: Pythonの <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\">None</span></code> になります。</p></li>\n<li><p>何も検証しません（つまり、<code class=\"docutils literal notranslate\"><span class=\"pre\">ValidationError</span></code> を決して発生させません）。</p></li>\n</ul>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">NullBooleanField</span></code> は、ウィジェットの <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code> を指定することで、 <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Select</span></code></a> や <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.RadioSelect\" title=\"django.forms.RadioSelect\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RadioSelect</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=\"n\">NullBooleanField</span><span class=\"p\">(</span>\n    <span class=\"n\">widget</span><span class=\"o\">=</span><span class=\"n\">Select</span><span class=\"p\">(</span>\n        <span class=\"n\">choices</span><span class=\"o\">=</span><span class=\"p\">[</span>\n            <span class=\"p\">(</span><span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Unknown&quot;</span><span class=\"p\">),</span>\n            <span class=\"p\">(</span><span class=\"kc\">True</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Yes&quot;</span><span class=\"p\">),</span>\n            <span class=\"p\">(</span><span class=\"kc\">False</span><span class=\"p\">,</span> <span class=\"s2\">&quot;No&quot;</span><span class=\"p\">),</span>\n        <span class=\"p\">]</span>\n    <span class=\"p\">)</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n<section id=\"regexfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">RegexField</span></code><a class=\"heading-anchor\" href=\"#regexfield\"><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.RegexField\">\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\">RegexField</span></span><span class=\"sig-paren\">(</span><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.RegexField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value</span></code> として指定したものです。</p></li>\n<li><p>正規化後の値: 文字列になります。</p></li>\n<li><p><a class=\"reference internal\" href=\"/ja/5.1/ref/validators/#django.core.validators.RegexValidator\" title=\"django.core.validators.RegexValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RegexValidator</span></code></a> を使用して、与えられた値が特定の正規表現と一致するかどうかを検証します。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code></p></li>\n</ul>\n<p>1つの必須引数を取ります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.RegexField.regex\">\n<span class=\"sig-name descname\"><span class=\"pre\">regex</span></span><a class=\"heading-anchor\" href=\"#django.forms.RegexField.regex\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>文字列またはコンパイルされた正規表現オブジェクトとして指定される正規表現。</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">min_length</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">strip</span></code>、および <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value</span></code> も受け取ります。これらは <a class=\"reference internal\" href=\"#django.forms.CharField\" title=\"django.forms.CharField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CharField</span></code></a> と全く同じように機能します。</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.RegexField.strip\">\n<span class=\"sig-name descname\"><span class=\"pre\">strip</span></span><a class=\"heading-anchor\" href=\"#django.forms.RegexField.strip\"><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\">False</span></code> です。有効にした場合、正規表現バリデーションの前にストリップ処理が適用されます。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"slugfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SlugField</span></code><a class=\"heading-anchor\" href=\"#slugfield\"><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.SlugField\">\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\">SlugField</span></span><span class=\"sig-paren\">(</span><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.SlugField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a></p></li>\n<li><p>空の値: <a class=\"reference internal\" href=\"#django.forms.SlugField.empty_value\" title=\"django.forms.SlugField.empty_value\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">empty_value</span></code></a> として与えたもの</p></li>\n<li><p>正規化後の値: 文字列になります。</p></li>\n<li><p><a class=\"reference internal\" href=\"/ja/5.1/ref/validators/#django.core.validators.validate_slug\" title=\"django.core.validators.validate_slug\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">validate_slug</span></code></a> または <a class=\"reference internal\" href=\"/ja/5.1/ref/validators/#django.core.validators.validate_unicode_slug\" title=\"django.core.validators.validate_unicode_slug\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">validate_unicode_slug</span></code></a> を使用して、与えられた値が文字、数字、アンダースコア、ハイフンのみを含むかを検証します。</p></li>\n<li><p>エラーメッセージ: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code></p></li>\n</ul>\n<p>このフィールドは、フォームでモデルの <a class=\"reference internal\" href=\"/ja/5.1/ref/models/fields/#django.db.models.SlugField\" title=\"django.db.models.SlugField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SlugField</span></code></a> を表現するために使用することを意図しています。</p>\n<p>2つのオプションパラメーターを取ります：</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.SlugField.allow_unicode\">\n<span class=\"sig-name descname\"><span class=\"pre\">allow_unicode</span></span><a class=\"heading-anchor\" href=\"#django.forms.SlugField.allow_unicode\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>フィールドが ASCII 文字に加えて Unicode 文字を受け入れるよう指示するブール値です。デフォルトは <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.SlugField.empty_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">empty_value</span></span><a class=\"heading-anchor\" href=\"#django.forms.SlugField.empty_value\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>「空」を表すのに使用する値です。デフォルトは空の文字列です。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"timefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">TimeField</span></code><a class=\"heading-anchor\" href=\"#timefield\"><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.TimeField\">\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\">TimeField</span></span><span class=\"sig-paren\">(</span><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.TimeField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.TimeInput\" title=\"django.forms.TimeInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TimeInput</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>正規化後の値: Python の <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.time</span></code> オブジェクトになります。</p></li>\n<li><p>与えられた値が <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.time</span></code> か、特定の時間形式でフォーマットされた文字列であることを検証します。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code></p></li>\n</ul>\n<p>1 つの省略可能な引数を取ります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.TimeField.input_formats\">\n<span class=\"sig-name descname\"><span class=\"pre\">input_formats</span></span><a class=\"heading-anchor\" href=\"#django.forms.TimeField.input_formats\"><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\">datetime.time</span></code> オブジェクトに変換するために試みる形式のイテラブル。</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">input_formats</span></code> 引数が指定されていない場合、デフォルトの入力形式は、アクティブなロケール形式の <code class=\"docutils literal notranslate\"><span class=\"pre\">TIME_INPUT_FORMATS</span></code> キーから取得されるか、ローカライズが無効の場合は <a class=\"reference internal\" href=\"/ja/5.1/ref/settings/#std-setting-TIME_INPUT_FORMATS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_INPUT_FORMATS</span></code></a> から取得されます。詳細は、<a class=\"reference internal\" href=\"/ja/5.1/topics/i18n/formatting/\"><span class=\"doc\">表示形式のローカライズ</span></a> を参照してください。</p>\n</dd></dl>\n\n</section>\n<section id=\"typedchoicefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">TypedChoiceField</span></code><a class=\"heading-anchor\" href=\"#typedchoicefield\"><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.TypedChoiceField\">\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\">TypedChoiceField</span></span><span class=\"sig-paren\">(</span><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.TypedChoiceField\"><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.ChoiceField\" title=\"django.forms.ChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ChoiceField</span></code></a> と同様ですが、 <a class=\"reference internal\" href=\"#django.forms.TypedChoiceField\" title=\"django.forms.TypedChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TypedChoiceField</span></code></a> は2つの追加引数、 <a class=\"reference internal\" href=\"#django.forms.TypedChoiceField.coerce\" title=\"django.forms.TypedChoiceField.coerce\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">coerce</span></code></a> と <a class=\"reference internal\" href=\"#django.forms.TypedChoiceField.empty_value\" title=\"django.forms.TypedChoiceField.empty_value\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">empty_value</span></code></a> を取ります。</p>\n<ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Select</span></code></a></p></li>\n<li><p>空の値: <a class=\"reference internal\" href=\"#django.forms.TypedChoiceField.empty_value\" title=\"django.forms.TypedChoiceField.empty_value\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">empty_value</span></code></a> として与えたもの</p></li>\n<li><p>正規化後の値: <a class=\"reference internal\" href=\"#django.forms.TypedChoiceField.coerce\" title=\"django.forms.TypedChoiceField.coerce\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">coerce</span></code></a> 引数で指定された型になります。</p></li>\n<li><p>指定された値が選択肢のリストに存在し、強制変換できることを検証します。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code></p></li>\n</ul>\n<p>追加の引数を取ります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.TypedChoiceField.coerce\">\n<span class=\"sig-name descname\"><span class=\"pre\">coerce</span></span><a class=\"heading-anchor\" href=\"#django.forms.TypedChoiceField.coerce\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>1つの引数を受け取り、強制された値を返す関数です。例には組み込みの <code class=\"docutils literal notranslate\"><span class=\"pre\">int</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">float</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">bool</span></code>、その他の型が含まれます。デフォルトは恒等関数です。強制は入力バリデーションの後に行われるため、<code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code> に存在しない値への強制が可能です。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.TypedChoiceField.empty_value\">\n<span class=\"sig-name descname\"><span class=\"pre\">empty_value</span></span><a class=\"heading-anchor\" href=\"#django.forms.TypedChoiceField.empty_value\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>&quot;空&quot; を表すために使用する値です。デフォルトは空文字列です。 <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> もここでよく使用される選択肢の一つです。この値は、 <code class=\"docutils literal notranslate\"><span class=\"pre\">coerce</span></code> 引数で与えられた関数によって強制されないことに注意してください。それに応じて選択してください。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"typedmultiplechoicefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">TypedMultipleChoiceField</span></code><a class=\"heading-anchor\" href=\"#typedmultiplechoicefield\"><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.TypedMultipleChoiceField\">\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\">TypedMultipleChoiceField</span></span><span class=\"sig-paren\">(</span><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.TypedMultipleChoiceField\"><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.MultipleChoiceField\" title=\"django.forms.MultipleChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultipleChoiceField</span></code></a> と同様ですが、 <a class=\"reference internal\" href=\"#django.forms.TypedMultipleChoiceField\" title=\"django.forms.TypedMultipleChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TypedMultipleChoiceField</span></code></a> は <code class=\"docutils literal notranslate\"><span class=\"pre\">coerce</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value</span></code> という2つの追加の引数を受け取ります。</p>\n<ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.SelectMultiple\" title=\"django.forms.SelectMultiple\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SelectMultiple</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value</span></code> として渡したもの</p></li>\n<li><p>正規化後の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">coerce</span></code> 引数によって提供される型の値のリストになります。</p></li>\n<li><p>指定された値が選択肢のリスト内に存在し、強制変換できることを検証します。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code></p></li>\n</ul>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code> エラーメッセージには <code class=\"docutils literal notranslate\"><span class=\"pre\">%(value)s</span></code> が含まれていることがあり、選択された選択肢に置き換えられます。</p>\n<p><a class=\"reference internal\" href=\"#django.forms.TypedChoiceField\" title=\"django.forms.TypedChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TypedChoiceField</span></code></a> と同様に、2つの追加引数 <code class=\"docutils literal notranslate\"><span class=\"pre\">coerce</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value</span></code> を取ります。</p>\n</dd></dl>\n\n</section>\n<section id=\"urlfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">URLField</span></code><a class=\"heading-anchor\" href=\"#urlfield\"><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.URLField\">\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\">URLField</span></span><span class=\"sig-paren\">(</span><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.URLField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.URLInput\" title=\"django.forms.URLInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">URLInput</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value</span></code> として指定したものです。</p></li>\n<li><p>正規化後の値: 文字列になります。</p></li>\n<li><p>与えられた値が有効なURLであることを検証するために <a class=\"reference internal\" href=\"/ja/5.1/ref/validators/#django.core.validators.URLValidator\" title=\"django.core.validators.URLValidator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">URLValidator</span></code></a> を使用します。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code></p></li>\n</ul>\n<p>オプション引数 <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">min_length</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">empty_value</span></code> は <a class=\"reference internal\" href=\"#django.forms.CharField\" title=\"django.forms.CharField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CharField</span></code></a> での動作と全く同じように機能し、さらにもう一つの引数があります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.URLField.assume_scheme\">\n<span class=\"sig-name descname\"><span class=\"pre\">assume_scheme</span></span><a class=\"heading-anchor\" href=\"#django.forms.URLField.assume_scheme\"><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>スキーマが省略されたURLに対して想定されるスキーマです。デフォルトは <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;http&quot;</span></code> です。たとえば、<code class=\"docutils literal notranslate\"><span class=\"pre\">assume_scheme</span></code> が <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;https&quot;</span></code> で、提供された値が <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;example.com&quot;</span></code> の場合、正規化された値は <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;https://example.com&quot;</span></code> になります。</p>\n</dd></dl>\n\n<aside class=\"version-note version-deprecated\" data-version=\"5.0\">\n<p class=\"version-note-title\">Deprecated since Django 5.0</p><p><span class=\"versionmodified deprecated\">バージョン 5.0 で非推奨: </span><code class=\"docutils literal notranslate\"><span class=\"pre\">assume_scheme</span></code> のデフォルト値は Django 6.0 で <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;http&quot;</span></code> から <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;https&quot;</span></code> に変更されます。Django 5.x のリリースサイクル中に <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;https&quot;</span></code> を使用するようにするには、移行用設定の <a class=\"reference internal\" href=\"/ja/5.1/ref/settings/#std-setting-FORMS_URLFIELD_ASSUME_HTTPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FORMS_URLFIELD_ASSUME_HTTPS</span></code></a> を <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> に設定してください。</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"uuidfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">UUIDField</span></code><a class=\"heading-anchor\" href=\"#uuidfield\"><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.UUIDField\">\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\">UUIDField</span></span><span class=\"sig-paren\">(</span><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.UUIDField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>正規化後の値: <a class=\"reference external\" href=\"https://docs.python.org/3/library/uuid.html#uuid.UUID\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">UUID</span></code></a> オブジェクトに正規化されます。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code></p></li>\n</ul>\n<p>このフィールドは、 <a class=\"reference external\" href=\"https://docs.python.org/3/library/uuid.html#uuid.UUID\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">UUID</span></code></a> コンストラクタの <code class=\"docutils literal notranslate\"><span class=\"pre\">hex</span></code> 引数として受け入れられる任意の文字列形式を受け付けます。</p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"slightly-complex-built-in-field-classes\">\n<h2>少し複雑な組み込み <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> クラス<a class=\"heading-anchor\" href=\"#slightly-complex-built-in-field-classes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"combofield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ComboField</span></code><a class=\"heading-anchor\" href=\"#combofield\"><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.ComboField\">\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\">ComboField</span></span><span class=\"sig-paren\">(</span><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.ComboField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (空の文字列)</p></li>\n<li><p>正規化後の値: 文字列になります。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ComboField</span></code> に引数として指定された各フィールドに対して、与えられた値をバリデーションします。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code></p></li>\n</ul>\n<p>1つの必須の追加引数を受け取ります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ComboField.fields\">\n<span class=\"sig-name descname\"><span class=\"pre\">fields</span></span><a class=\"heading-anchor\" href=\"#django.forms.ComboField.fields\"><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=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.forms</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ComboField</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span> <span class=\"o\">=</span> <span class=\"n\">ComboField</span><span class=\"p\">(</span><span class=\"n\">fields</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">20</span><span class=\"p\">),</span> <span class=\"n\">EmailField</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\">clean</span><span class=\"p\">(</span><span class=\"s2\">&quot;test@example.com&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;test@example.com&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">clean</span><span class=\"p\">(</span><span class=\"s2\">&quot;longemailaddress@example.com&quot;</span><span class=\"p\">)</span>\n<span class=\"gt\">Traceback (most recent call last):</span>\n<span class=\"c\">...</span>\n<span class=\"gr\">ValidationError</span>: <span class=\"n\">[&#39;Ensure this value has at most 20 characters (it has 28).&#39;]</span>\n</code></pre></div>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"multivaluefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">MultiValueField</span></code><a class=\"heading-anchor\" href=\"#multivaluefield\"><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.MultiValueField\">\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\">MultiValueField</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fields</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">()</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.MultiValueField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code> (空の文字列)</p></li>\n<li><p>正規化後の値: サブクラスの <code class=\"docutils literal notranslate\"><span class=\"pre\">compress</span></code> メソッドによって返される型になります。</p></li>\n<li><p>指定された引数としての <code class=\"docutils literal notranslate\"><span class=\"pre\">MultiValueField</span></code> に各フィールドに対して与えられた値を検証します。</p></li>\n<li><p>エラーメッセージキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">incomplete</span></code></p></li>\n</ul>\n<p>複数のフィールドのロジックを集計し、単一の値を生成します。</p>\n<p>このフィールドは抽象フィールドで、サブクラス化する必要があります。単一値フィールドとは対照的に、<a class=\"reference internal\" href=\"#django.forms.MultiValueField\" title=\"django.forms.MultiValueField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultiValueField</span></code></a> のサブクラスは <a class=\"reference internal\" href=\"#django.forms.Field.clean\" title=\"django.forms.Field.clean\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">clean()</span></code></a> を実装してはいけません。代わりに、<a class=\"reference internal\" href=\"#django.forms.MultiValueField.compress\" title=\"django.forms.MultiValueField.compress\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">compress()</span></code></a> を実装します。</p>\n<p>1つの必須の追加引数を受け取ります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.MultiValueField.fields\">\n<span class=\"sig-name descname\"><span class=\"pre\">fields</span></span><a class=\"heading-anchor\" href=\"#django.forms.MultiValueField.fields\"><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\">fields</span></code> 内の対応するフィールドによってクリーニングされます。最初の値は最初のフィールドによって、2番目の値は2番目のフィールドによって、という具合にクリーニングされます。すべてのフィールドがクリーニングされたら、クリーニングされた値のリストは <a class=\"reference internal\" href=\"#django.forms.MultiValueField.compress\" title=\"django.forms.MultiValueField.compress\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">compress()</span></code></a> によって単一の値に結合されます。</p>\n</dd></dl>\n\n<p>オプションの引数もいくつか受け取ります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.MultiValueField.require_all_fields\">\n<span class=\"sig-name descname\"><span class=\"pre\">require_all_fields</span></span><a class=\"heading-anchor\" href=\"#django.forms.MultiValueField.require_all_fields\"><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\">True</span></code> で、フィールドに値が指定されていない場合は <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code> バリデーションエラーが発生します。</p>\n<p><a class=\"reference internal\" href=\"#django.forms.Field.required\" title=\"django.forms.Field.required\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">Field.required</span></code></a> 属性を <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> に設定すると、個々のフィールドをオプションフィールドにすることができます。必須フィールドに値が与えられない場合、<code class=\"docutils literal notranslate\"><span class=\"pre\">incomplete</span></code> というバリデーションエラーが発生します。</p>\n<p>デフォルトの <code class=\"docutils literal notranslate\"><span class=\"pre\">incomplete</span></code> エラーメッセージは、<a class=\"reference internal\" href=\"#django.forms.MultiValueField\" title=\"django.forms.MultiValueField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultiValueField</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.core.validators</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">RegexValidator</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PhoneField</span><span class=\"p\">(</span><span class=\"n\">MultiValueField</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"c1\"># Define one message for all fields.</span>\n        <span class=\"n\">error_messages</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n            <span class=\"s2\">&quot;incomplete&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Enter a country calling code and a phone number.&quot;</span><span class=\"p\">,</span>\n        <span class=\"p\">}</span>\n        <span class=\"c1\"># Or define a different message for each field.</span>\n        <span class=\"n\">fields</span> <span class=\"o\">=</span> <span class=\"p\">(</span>\n            <span class=\"n\">CharField</span><span class=\"p\">(</span>\n                <span class=\"n\">error_messages</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;incomplete&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Enter a country calling code.&quot;</span><span class=\"p\">},</span>\n                <span class=\"n\">validators</span><span class=\"o\">=</span><span class=\"p\">[</span>\n                    <span class=\"n\">RegexValidator</span><span class=\"p\">(</span><span class=\"sa\">r</span><span class=\"s2\">&quot;^[0-9]+$&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Enter a valid country calling code.&quot;</span><span class=\"p\">),</span>\n                <span class=\"p\">],</span>\n            <span class=\"p\">),</span>\n            <span class=\"n\">CharField</span><span class=\"p\">(</span>\n                <span class=\"n\">error_messages</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;incomplete&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Enter a phone number.&quot;</span><span class=\"p\">},</span>\n                <span class=\"n\">validators</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"n\">RegexValidator</span><span class=\"p\">(</span><span class=\"sa\">r</span><span class=\"s2\">&quot;^[0-9]+$&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Enter a valid phone number.&quot;</span><span class=\"p\">)],</span>\n            <span class=\"p\">),</span>\n            <span class=\"n\">CharField</span><span class=\"p\">(</span>\n                <span class=\"n\">validators</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"n\">RegexValidator</span><span class=\"p\">(</span><span class=\"sa\">r</span><span class=\"s2\">&quot;^[0-9]+$&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Enter a valid extension.&quot;</span><span class=\"p\">)],</span>\n                <span class=\"n\">required</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">,</span>\n            <span class=\"p\">),</span>\n        <span class=\"p\">)</span>\n        <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"fm\">__init__</span><span class=\"p\">(</span>\n            <span class=\"n\">error_messages</span><span class=\"o\">=</span><span class=\"n\">error_messages</span><span class=\"p\">,</span>\n            <span class=\"n\">fields</span><span class=\"o\">=</span><span class=\"n\">fields</span><span class=\"p\">,</span>\n            <span class=\"n\">require_all_fields</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">,</span>\n            <span class=\"o\">**</span><span class=\"n\">kwargs</span>\n        <span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.MultiValueField.widget\">\n<span class=\"sig-name descname\"><span class=\"pre\">widget</span></span><a class=\"heading-anchor\" href=\"#django.forms.MultiValueField.widget\"><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.1/ref/forms/widgets/#django.forms.MultiWidget\" title=\"django.forms.MultiWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.forms.MultiWidget</span></code></a> のサブクラスでなければなりません。デフォルト値は <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.TextInput\" title=\"django.forms.TextInput\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextInput</span></code></a> ですが、この場合にはあまり役に立たないかもしれません。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.MultiValueField.compress\">\n<span class=\"sig-name descname\"><span class=\"pre\">compress</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">data_list</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.MultiValueField.compress\"><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.SplitDateTimeField\" title=\"django.forms.SplitDateTimeField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SplitDateTimeField</span></code></a> は時間フィールドと日付フィールドを組み合わせて <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime</span></code> オブジェクトにするサブクラスです。</p>\n<p>このメソッドはサブクラスで実装されなければなりません。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"splitdatetimefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">SplitDateTimeField</span></code><a class=\"heading-anchor\" href=\"#splitdatetimefield\"><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.SplitDateTimeField\">\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\">SplitDateTimeField</span></span><span class=\"sig-paren\">(</span><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.SplitDateTimeField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.SplitDateTimeWidget\" title=\"django.forms.SplitDateTimeWidget\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SplitDateTimeWidget</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>正規化後の値: Python の <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.datetime</span></code> オブジェクトになります。</p></li>\n<li><p>指定された値が <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.datetime</span></code> または特定の日時形式でフォーマットされた文字列であることを検証します。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_date</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_time</span></code></p></li>\n</ul>\n<p>次の2つの省略可能な引数を取ります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.SplitDateTimeField.input_date_formats\">\n<span class=\"sig-name descname\"><span class=\"pre\">input_date_formats</span></span><a class=\"heading-anchor\" href=\"#django.forms.SplitDateTimeField.input_date_formats\"><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\">datetime.date</span></code> オブジェクトに変換する試行に使う表示形式のリストです。</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">input_date_formats</span></code> 引数が提供されない場合、<a class=\"reference internal\" href=\"#django.forms.DateField\" title=\"django.forms.DateField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateField</span></code></a> のデフォルトの入力フォーマットが使用されます。</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.SplitDateTimeField.input_time_formats\">\n<span class=\"sig-name descname\"><span class=\"pre\">input_time_formats</span></span><a class=\"heading-anchor\" href=\"#django.forms.SplitDateTimeField.input_time_formats\"><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\">datetime.time</span></code> オブジェクトに変換しようとする際に使用されるフォーマットのリスト。</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">input_time_formats</span></code> 引数が提供されない場合、<a class=\"reference internal\" href=\"#django.forms.TimeField\" title=\"django.forms.TimeField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TimeField</span></code></a> のデフォルト入力フォーマットが使用されます。</p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"fields-which-handle-relationships\">\n<span id=\"id2\"></span><h2>リレーションシップを扱うフィールド<a class=\"heading-anchor\" href=\"#fields-which-handle-relationships\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>モデル間のリレーションシップを表すために2つのフィールドが利用可能です： <a class=\"reference internal\" href=\"#django.forms.ModelChoiceField\" title=\"django.forms.ModelChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code></a> と <a class=\"reference internal\" href=\"#django.forms.ModelMultipleChoiceField\" title=\"django.forms.ModelMultipleChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelMultipleChoiceField</span></code></a> です。これらのフィールドの両方には、フィールドの選択肢を作成するために使用される単一の <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code> パラメータが必要です。フォーム検証時、これらのフィールドは、フォームの <code class=\"docutils literal notranslate\"><span class=\"pre\">cleaned_data</span></code> 辞書に一つのモデルオブジェクト ( <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code> の場合) または複数のモデルオブジェクト ( <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelMultipleChoiceField</span></code> の場合) を配置します。</p>\n<p>より複雑な使い方をする場合は、フォームフィールドを宣言する際に <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset=None</span></code> を指定し、その後フォームの <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__()</span></code> メソッド内で <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</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\">FooMultipleChoiceForm</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\">foo_select</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ModelMultipleChoiceField</span><span class=\"p\">(</span><span class=\"n\">queryset</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n        <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">fields</span><span class=\"p\">[</span><span class=\"s2\">&quot;foo_select&quot;</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">queryset</span> <span class=\"o\">=</span> <span class=\"o\">...</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelMultipleChoiceField</span></code> には、選択肢を生成する際にクエリセットを繰り返すために使用されるクラスを指定する <code class=\"docutils literal notranslate\"><span class=\"pre\">iterator</span></code> 属性があります。詳細は、 <a class=\"reference internal\" href=\"#iterating-relationship-choices\"><span class=\"std std-ref\">リレーションシップの選択肢をイテレートする</span></a> を参照してください。</p>\n<section id=\"modelchoicefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code><a class=\"heading-anchor\" href=\"#modelchoicefield\"><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.ModelChoiceField\">\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\">ModelChoiceField</span></span><span class=\"sig-paren\">(</span><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.ModelChoiceField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Select</span></code></a></p></li>\n<li><p>空の値: <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></li>\n<li><p>正規化後の値: model インスタンスに正規化されます。</p></li>\n<li><p>指定された id がクエリセット内に存在することを検証します。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code></p></li>\n</ul>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code> エラーメッセージには <code class=\"docutils literal notranslate\"><span class=\"pre\">%(value)s</span></code> が含まれていることがあり、選択された選択肢に置き換えられます。</p>\n<p>外部キーを表すのに適した単一のモデルオブジェクトの選択を許可します。<code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code> のデフォルトウィジェットは、エントリーの数が増えると非実用的になることに注意してください。100項目以上には使用を避けるべきです。</p>\n<p>引数が1つ必要です:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceField.queryset\">\n<span class=\"sig-name descname\"><span class=\"pre\">queryset</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceField.queryset\"><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\">QuerySet</span></code> で、フィールドの選択肢を導き出し、ユーザーの選択を検証するために使用されます。フォームがレンダリングされるときに評価されます。</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code> は他にもいくつかのオプション引数を取ります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceField.empty_label\">\n<span class=\"sig-name descname\"><span class=\"pre\">empty_label</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceField.empty_label\"><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\">ModelChoiceField</span></code> が使用する <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;select&gt;</span></code> ウィジェットには、リストの先頭に空の選択肢が表示されます。このラベルのテキスト（デフォルトでは <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;---------&quot;</span></code>）を <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_label</span></code> 属性で変更したり、<code class=\"docutils literal notranslate\"><span class=\"pre\">empty_label</span></code> を <code class=\"docutils literal notranslate\"><span class=\"pre\">None</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=\"c1\"># A custom empty label</span>\n<span class=\"n\">field1</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ModelChoiceField</span><span class=\"p\">(</span><span class=\"n\">queryset</span><span class=\"o\">=...</span><span class=\"p\">,</span> <span class=\"n\">empty_label</span><span class=\"o\">=</span><span class=\"s2\">&quot;(Nothing)&quot;</span><span class=\"p\">)</span>\n\n<span class=\"c1\"># No empty label</span>\n<span class=\"n\">field2</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ModelChoiceField</span><span class=\"p\">(</span><span class=\"n\">queryset</span><span class=\"o\">=...</span><span class=\"p\">,</span> <span class=\"n\">empty_label</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">)</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code> が必須でデフォルトの初期値を持っている場合や、<code class=\"docutils literal notranslate\"><span class=\"pre\">widget</span></code> が <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.RadioSelect\" title=\"django.forms.RadioSelect\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RadioSelect</span></code></a> に設定されており <a class=\"reference internal\" href=\"#django.forms.ModelChoiceField.blank\" title=\"django.forms.ModelChoiceField.blank\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">blank</span></code></a> 引数が <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> の場合には、 <code class=\"docutils literal notranslate\"><span class=\"pre\">empty_label</span></code> の値に関係なく空の選択肢は作成されません。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceField.to_field_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">to_field_name</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceField.to_field_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\">None</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=\"c1\"># No custom to_field_name</span>\n<span class=\"n\">field1</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ModelChoiceField</span><span class=\"p\">(</span><span class=\"n\">queryset</span><span class=\"o\">=...</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\">select</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_field1&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;field1&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">option</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;obj1.pk&quot;</span><span class=\"p\">&gt;</span>Object1<span class=\"p\">&lt;/</span><span class=\"nt\">option</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">option</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;obj2.pk&quot;</span><span class=\"p\">&gt;</span>Object2<span class=\"p\">&lt;/</span><span class=\"nt\">option</span><span class=\"p\">&gt;</span>\n...\n<span class=\"p\">&lt;/</span><span class=\"nt\">select</span><span class=\"p\">&gt;</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=\"c1\"># to_field_name provided</span>\n<span class=\"n\">field2</span> <span class=\"o\">=</span> <span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ModelChoiceField</span><span class=\"p\">(</span><span class=\"n\">queryset</span><span class=\"o\">=...</span><span class=\"p\">,</span> <span class=\"n\">to_field_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;name&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\">select</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_field2&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;field2&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">option</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;obj1.name&quot;</span><span class=\"p\">&gt;</span>Object1<span class=\"p\">&lt;/</span><span class=\"nt\">option</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">option</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;obj2.name&quot;</span><span class=\"p\">&gt;</span>Object2<span class=\"p\">&lt;/</span><span class=\"nt\">option</span><span class=\"p\">&gt;</span>\n...\n<span class=\"p\">&lt;/</span><span class=\"nt\">select</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.ModelChoiceField.blank\">\n<span class=\"sig-name descname\"><span class=\"pre\">blank</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceField.blank\"><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.1/ref/forms/widgets/#django.forms.RadioSelect\" title=\"django.forms.RadioSelect\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RadioSelect</span></code></a> ウィジェットを使用する場合、このオプションのブール引数は空の選択肢を作成するかどうかを決定します。デフォルトでは、<code class=\"docutils literal notranslate\"><span class=\"pre\">blank</span></code> は <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> で、空の選択肢は作成されません。</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code> には、以下の属性もあります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceField.iterator\">\n<span class=\"sig-name descname\"><span class=\"pre\">iterator</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceField.iterator\"><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\">queryset</span></code> からフィールド選択肢を生成するために使用されるイテレータクラス。デフォルトでは、<a class=\"reference internal\" href=\"#django.forms.ModelChoiceIterator\" title=\"django.forms.ModelChoiceIterator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceIterator</span></code></a> です。</p>\n</dd></dl>\n\n<p>モデルの <code class=\"docutils literal notranslate\"><span class=\"pre\">__str__()</span></code> メソッドは、フィールドの選択肢で使用するためにオブジェクトの文字列表現を生成するために呼び出されます。カスタマイズした表現を提供するには、<code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code> をサブクラス化して <code class=\"docutils literal notranslate\"><span class=\"pre\">label_from_instance</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.forms</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ModelChoiceField</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyModelChoiceField</span><span class=\"p\">(</span><span class=\"n\">ModelChoiceField</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">label_from_instance</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">obj</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"s2\">&quot;My Object #</span><span class=\"si\">%i</span><span class=\"s2\">&quot;</span> <span class=\"o\">%</span> <span class=\"n\">obj</span><span class=\"o\">.</span><span class=\"n\">id</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n<section id=\"modelmultiplechoicefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelMultipleChoiceField</span></code><a class=\"heading-anchor\" href=\"#modelmultiplechoicefield\"><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.ModelMultipleChoiceField\">\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\">ModelMultipleChoiceField</span></span><span class=\"sig-paren\">(</span><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.ModelMultipleChoiceField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><ul class=\"simple\">\n<li><p>デフォルトのウィジェット: <a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.SelectMultiple\" title=\"django.forms.SelectMultiple\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SelectMultiple</span></code></a></p></li>\n<li><p>空の値: 空の <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> (<code class=\"docutils literal notranslate\"><span class=\"pre\">self.queryset.none()</span></code>)</p></li>\n<li><p>正規化後の値: モデルインスタンスの <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> になります。</p></li>\n<li><p>与えられた値のリスト内のすべてのIDがクエリセット内に存在することを検証します。</p></li>\n<li><p>エラーメッセージのキー: <code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>、 <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_list</span></code>、 <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code>、 <code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_pk_value</span></code></p></li>\n</ul>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_choice</span></code> メッセージには <code class=\"docutils literal notranslate\"><span class=\"pre\">%(value)s</span></code> が含まれる可能性があり、<code class=\"docutils literal notranslate\"><span class=\"pre\">invalid_pk_value</span></code> メッセージには <code class=\"docutils literal notranslate\"><span class=\"pre\">%(pk)s</span></code> が含まれる可能性があります。これらは適切な値に置き換えられます。</p>\n<p>一つまたは複数のモデルオブジェクトを選択できるようにし、多対多のリレーションシップを表すのに適しています。<a class=\"reference internal\" href=\"#django.forms.ModelChoiceField\" title=\"django.forms.ModelChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code></a> と同様に, <code class=\"docutils literal notranslate\"><span class=\"pre\">label_from_instance</span></code> を使用してオブジェクトの表現をカスタマイズできます。</p>\n<p>引数が1つ必要です:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelMultipleChoiceField.queryset\">\n<span class=\"sig-name descname\"><span class=\"pre\">queryset</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelMultipleChoiceField.queryset\"><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.ModelChoiceField.queryset\" title=\"django.forms.ModelChoiceField.queryset\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceField.queryset</span></code></a> と同じです。</p>\n</dd></dl>\n\n<p>1 つの省略可能な引数を取ります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelMultipleChoiceField.to_field_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">to_field_name</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelMultipleChoiceField.to_field_name\"><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.ModelChoiceField.to_field_name\" title=\"django.forms.ModelChoiceField.to_field_name\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceField.to_field_name</span></code></a> と同じです。</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelMultipleChoiceField</span></code> には次の属性もあります:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelMultipleChoiceField.iterator\">\n<span class=\"sig-name descname\"><span class=\"pre\">iterator</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelMultipleChoiceField.iterator\"><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.ModelChoiceField.iterator\" title=\"django.forms.ModelChoiceField.iterator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceField.iterator</span></code></a> と同じです。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"iterating-relationship-choices\">\n<span id=\"id3\"></span><h3>リレーションシップの選択肢をイテレートする<a class=\"heading-anchor\" href=\"#iterating-relationship-choices\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>デフォルトでは、<a class=\"reference internal\" href=\"#django.forms.ModelChoiceField\" title=\"django.forms.ModelChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code></a> と <a class=\"reference internal\" href=\"#django.forms.ModelMultipleChoiceField\" title=\"django.forms.ModelMultipleChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelMultipleChoiceField</span></code></a> は、<a class=\"reference internal\" href=\"#django.forms.ModelChoiceIterator\" title=\"django.forms.ModelChoiceIterator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceIterator</span></code></a> を使用して、フィールドの <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code> を生成します。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceIterator</span></code> をイテレートすると、1つ目の <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 要素として <a class=\"reference internal\" href=\"#django.forms.ModelChoiceIteratorValue\" title=\"django.forms.ModelChoiceIteratorValue\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceIteratorValue</span></code></a> インスタンスを含む2値タプルの選択肢が生成されます。 <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceIteratorValue</span></code> は、選択値をラップし、カスタムウィジェットの実装で使用できる元のモデルインスタンスへの参照を保持します。たとえば、 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;option&gt;</span></code> 要素に <a class=\"reference external\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/data-*\">data-* attributes</a> を追加するのに使用できます。</p>\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=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Topping</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n    <span class=\"n\">price</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DecimalField</span><span class=\"p\">(</span><span class=\"n\">decimal_places</span><span class=\"o\">=</span><span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"n\">max_digits</span><span class=\"o\">=</span><span class=\"mi\">6</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__str__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">name</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Pizza</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">topping</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span><span class=\"n\">Topping</span><span class=\"p\">,</span> <span class=\"n\">on_delete</span><span class=\"o\">=</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">)</span>\n</code></pre></div>\n<p><a class=\"reference internal\" href=\"/ja/5.1/ref/forms/widgets/#django.forms.Select\" title=\"django.forms.Select\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Select</span></code></a> ウィジェットのサブクラスを使用して、各 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;option&gt;</span></code> 要素の HTML 属性 <code class=\"docutils literal notranslate\"><span class=\"pre\">data-price</span></code> として <code class=\"docutils literal notranslate\"><span class=\"pre\">Topping.price</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\">ToppingSelect</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">Select</span><span class=\"p\">):</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">create_option</span><span class=\"p\">(</span>\n        <span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">name</span><span class=\"p\">,</span> <span class=\"n\">value</span><span class=\"p\">,</span> <span class=\"n\">label</span><span class=\"p\">,</span> <span class=\"n\">selected</span><span class=\"p\">,</span> <span class=\"n\">index</span><span class=\"p\">,</span> <span class=\"n\">subindex</span><span class=\"o\">=</span><span class=\"kc\">None</span><span class=\"p\">,</span> <span class=\"n\">attrs</span><span class=\"o\">=</span><span class=\"kc\">None</span>\n    <span class=\"p\">):</span>\n        <span class=\"n\">option</span> <span class=\"o\">=</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">create_option</span><span class=\"p\">(</span>\n            <span class=\"n\">name</span><span class=\"p\">,</span> <span class=\"n\">value</span><span class=\"p\">,</span> <span class=\"n\">label</span><span class=\"p\">,</span> <span class=\"n\">selected</span><span class=\"p\">,</span> <span class=\"n\">index</span><span class=\"p\">,</span> <span class=\"n\">subindex</span><span class=\"p\">,</span> <span class=\"n\">attrs</span>\n        <span class=\"p\">)</span>\n        <span class=\"k\">if</span> <span class=\"n\">value</span><span class=\"p\">:</span>\n            <span class=\"n\">option</span><span class=\"p\">[</span><span class=\"s2\">&quot;attrs&quot;</span><span class=\"p\">][</span><span class=\"s2\">&quot;data-price&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"n\">value</span><span class=\"o\">.</span><span class=\"n\">instance</span><span class=\"o\">.</span><span class=\"n\">price</span>\n        <span class=\"k\">return</span> <span class=\"n\">option</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">PizzaForm</span><span class=\"p\">(</span><span class=\"n\">forms</span><span class=\"o\">.</span><span class=\"n\">ModelForm</span><span class=\"p\">):</span>\n    <span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Meta</span><span class=\"p\">:</span>\n        <span class=\"n\">model</span> <span class=\"o\">=</span> <span class=\"n\">Pizza</span>\n        <span class=\"n\">fields</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">&quot;topping&quot;</span><span class=\"p\">]</span>\n        <span class=\"n\">widgets</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;topping&quot;</span><span class=\"p\">:</span> <span class=\"n\">ToppingSelect</span><span class=\"p\">}</span>\n</code></pre></div>\n<p>これにより、<code class=\"docutils literal notranslate\"><span class=\"pre\">Pizza.topping</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\">select</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;id_topping&quot;</span> <span class=\"na\">name</span><span class=\"o\">=</span><span class=\"s\">&quot;topping&quot;</span> <span class=\"na\">required</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">option</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;&quot;</span> <span class=\"na\">selected</span><span class=\"p\">&gt;</span>---------<span class=\"p\">&lt;/</span><span class=\"nt\">option</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">option</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;1&quot;</span> <span class=\"na\">data-price</span><span class=\"o\">=</span><span class=\"s\">&quot;1.50&quot;</span><span class=\"p\">&gt;</span>mushrooms<span class=\"p\">&lt;/</span><span class=\"nt\">option</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">option</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;2&quot;</span> <span class=\"na\">data-price</span><span class=\"o\">=</span><span class=\"s\">&quot;1.25&quot;</span><span class=\"p\">&gt;</span>onions<span class=\"p\">&lt;/</span><span class=\"nt\">option</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">option</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;3&quot;</span> <span class=\"na\">data-price</span><span class=\"o\">=</span><span class=\"s\">&quot;1.75&quot;</span><span class=\"p\">&gt;</span>peppers<span class=\"p\">&lt;/</span><span class=\"nt\">option</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">option</span> <span class=\"na\">value</span><span class=\"o\">=</span><span class=\"s\">&quot;4&quot;</span> <span class=\"na\">data-price</span><span class=\"o\">=</span><span class=\"s\">&quot;2.00&quot;</span><span class=\"p\">&gt;</span>pineapple<span class=\"p\">&lt;/</span><span class=\"nt\">option</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">select</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>より高度な使い方をする場合は、 <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceIterator</span></code> をサブクラスにして、得られる2値タプルの選択肢をカスタマイズできます。</p>\n<section id=\"modelchoiceiterator\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceIterator</span></code><a class=\"heading-anchor\" href=\"#modelchoiceiterator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceIterator\">\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\">ModelChoiceIterator</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceIterator\"><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.ModelChoiceField\" title=\"django.forms.ModelChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code></a> と <a class=\"reference internal\" href=\"#django.forms.ModelMultipleChoiceField\" title=\"django.forms.ModelMultipleChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelMultipleChoiceField</span></code></a> の <code class=\"docutils literal notranslate\"><span class=\"pre\">iterator</span></code> 属性に割り当てられたデフォルトのクラスです。クエリセットから 2 タプルの選択肢を返すイテレータです。</p>\n<p>引数が1つ必要です:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceIterator.field\">\n<span class=\"sig-name descname\"><span class=\"pre\">field</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceIterator.field\"><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\">ModelChoiceField</span></code> または <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelMultipleChoiceField</span></code> のインスタンスをイテレートして選択肢を生成します。</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceIterator</span></code> には、以下のメソッドがあります:</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceIterator.__iter__\">\n<span class=\"sig-name descname\"><span class=\"pre\">__iter__</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceIterator.__iter__\"><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.ChoiceField.choices\" title=\"django.forms.ChoiceField.choices\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ChoiceField.choices</span></code></a> で使用される <code class=\"docutils literal notranslate\"><span class=\"pre\">(value,</span> <span class=\"pre\">label)</span></code> フォーマットの 2値タプルの選択肢を生成します。最初の <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 要素は <a class=\"reference internal\" href=\"#django.forms.ModelChoiceIteratorValue\" title=\"django.forms.ModelChoiceIteratorValue\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceIteratorValue</span></code></a> インスタンスです。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"modelchoiceiteratorvalue\">\n<h4><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceIteratorValue</span></code><a class=\"heading-anchor\" href=\"#modelchoiceiteratorvalue\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceIteratorValue\">\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\">ModelChoiceIteratorValue</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">instance</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceIteratorValue\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>2 つの引数が必要です:</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceIteratorValue.value\">\n<span class=\"sig-name descname\"><span class=\"pre\">value</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceIteratorValue.value\"><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;option&gt;</span></code> 要素の <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 属性のレンダリングに使用されます。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceIteratorValue.instance\">\n<span class=\"sig-name descname\"><span class=\"pre\">instance</span></span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceIteratorValue.instance\"><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\">ChoiceWidget.create_option()</span></code> の実装でアクセスし、レンダリングされるHTMLを調整できます。</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelChoiceIteratorValue</span></code> には次のメソッドがあります:</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.forms.ModelChoiceIteratorValue.__str__\">\n<span class=\"sig-name descname\"><span class=\"pre\">__str__</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.forms.ModelChoiceIteratorValue.__str__\"><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\">value</span></code> を HTML でレンダリングするための文字列として返します。</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n</section>\n</section>\n<section id=\"creating-custom-fields\">\n<h2>カスタムフィールドの作成<a class=\"heading-anchor\" href=\"#creating-custom-fields\"><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\">Field</span></code> クラスが要件を満たさない場合は、カスタムの <code class=\"docutils literal notranslate\"><span class=\"pre\">Field</span></code> クラスを作成できます。これには、 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.Field</span></code> のサブクラスを作成します。唯一の要件は、 <code class=\"docutils literal notranslate\"><span class=\"pre\">clean()</span></code> メソッドを実装し、 <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__()</span></code> メソッドが上述の基本的な引数 (<code class=\"docutils literal notranslate\"><span class=\"pre\">required</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">label</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">initial</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">widget</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">help_text</span></code>) を受け入れることです。</p>\n<p><a class=\"reference internal\" href=\"/ja/5.1/ref/forms/api/#django.forms.Field.get_bound_field\" title=\"django.forms.Field.get_bound_field\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_bound_field()</span></code></a> をオーバーライドすることで、フィールドへのアクセス方法をカスタマイズすることもできます。</p>\n</section>","rootId":"module-django.forms.fields","toc":[{"title":"field のコアとなる引数","anchor":"core-field-arguments","children":[{"title":"required","anchor":"required","children":[]},{"title":"label","anchor":"label","children":[]},{"title":"label_suffix","anchor":"label-suffix","children":[]},{"title":"initial","anchor":"initial","children":[]},{"title":"widget","anchor":"widget","children":[]},{"title":"help_text","anchor":"help-text","children":[]},{"title":"error_messages","anchor":"error-messages","children":[]},{"title":"validators","anchor":"validators","children":[]},{"title":"localize","anchor":"localize","children":[]},{"title":"disabled","anchor":"disabled","children":[]},{"title":"template_name","anchor":"template-name","children":[]}]},{"title":"フィールドのデータの変更チェック","anchor":"checking-if-the-field-data-has-changed","children":[{"title":"has_changed()","anchor":"has-changed","children":[]}]},{"title":"ビルトインの Field クラス","anchor":"built-in-field-classes","children":[{"title":"BooleanField","anchor":"booleanfield","children":[]},{"title":"CharField","anchor":"charfield","children":[]},{"title":"ChoiceField","anchor":"choicefield","children":[]},{"title":"DateField","anchor":"datefield","children":[]},{"title":"DateTimeField","anchor":"datetimefield","children":[]},{"title":"DecimalField","anchor":"decimalfield","children":[]},{"title":"DurationField","anchor":"durationfield","children":[]},{"title":"EmailField","anchor":"emailfield","children":[]},{"title":"FileField","anchor":"filefield","children":[]},{"title":"FilePathField","anchor":"filepathfield","children":[]},{"title":"FloatField","anchor":"floatfield","children":[]},{"title":"GenericIPAddressField","anchor":"genericipaddressfield","children":[]},{"title":"ImageField","anchor":"imagefield","children":[]},{"title":"IntegerField","anchor":"integerfield","children":[]},{"title":"JSONField","anchor":"jsonfield","children":[]},{"title":"MultipleChoiceField","anchor":"multiplechoicefield","children":[]},{"title":"NullBooleanField","anchor":"nullbooleanfield","children":[]},{"title":"RegexField","anchor":"regexfield","children":[]},{"title":"SlugField","anchor":"slugfield","children":[]},{"title":"TimeField","anchor":"timefield","children":[]},{"title":"TypedChoiceField","anchor":"typedchoicefield","children":[]},{"title":"TypedMultipleChoiceField","anchor":"typedmultiplechoicefield","children":[]},{"title":"URLField","anchor":"urlfield","children":[]},{"title":"UUIDField","anchor":"uuidfield","children":[]}]},{"title":"少し複雑な組み込み Field クラス","anchor":"slightly-complex-built-in-field-classes","children":[{"title":"ComboField","anchor":"combofield","children":[]},{"title":"MultiValueField","anchor":"multivaluefield","children":[]},{"title":"SplitDateTimeField","anchor":"splitdatetimefield","children":[]}]},{"title":"リレーションシップを扱うフィールド","anchor":"fields-which-handle-relationships","children":[{"title":"ModelChoiceField","anchor":"modelchoicefield","children":[]},{"title":"ModelMultipleChoiceField","anchor":"modelmultiplechoicefield","children":[]},{"title":"リレーションシップの選択肢をイテレートする","anchor":"iterating-relationship-choices","children":[{"title":"ModelChoiceIterator","anchor":"modelchoiceiterator","children":[]},{"title":"ModelChoiceIteratorValue","anchor":"modelchoiceiteratorvalue","children":[]}]}]},{"title":"カスタムフィールドの作成","anchor":"creating-custom-fields","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API リファレンス","url":"/ja/5.1/ref/"},{"docname":"ref/forms/index","title":"フォーム","url":"/ja/5.1/ref/forms/"}],"prev":{"docname":"ref/forms/api","title":"フォーム API","url":"/ja/5.1/ref/forms/api/"},"next":{"docname":"ref/forms/models","title":"モデルフォーム関数","url":"/ja/5.1/ref/forms/models/"},"formats":{"html":"/ja/5.1/ref/forms/fields/","markdown":"/ja/5.1/ref/forms/fields.md","json":"/ja/5.1/ref/forms/fields.json"},"source":"https://github.com/django/django/blob/stable/5.1.x/docs/ref/forms/fields.txt","official":"https://docs.djangoproject.com/ja/5.1/ref/forms/fields/","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"]}