... えるとわかりやすいでしょう。次のようなフォームがあるとしましょう: >>> from django import forms >>> class ArticleForm ( forms . Form ): ... title = forms . CharField () ... pub_date = forms . DateField () ... ユーザーが一度に複数の記事を作成 ... できるようにしたいと思うかもしれません。 ArticleForm からフォームセットを作るには、次のようにします: >>> from django.forms import formset_factory >>> ArticleFormSet = formset_ ... factory ( ArticleForm ) これで ArticleFormSet という名前のフォームセットクラスが作成されました。フォームセットをインスタンス化することで、フォー ... ... えるとわかりやすいでしょう。次のようなフォームがあるとしましょう: >>> from django import forms >>> class ArticleForm ( forms . Form ): ... title = forms . CharField () ... pub_date = forms . DateField () ... ユーザーが一度に複数の記事を作成 ... できるようにしたいと思うかもしれません。 ArticleForm からフォームセットを作るには、次のようにします: >>> from django.forms import formset_factory >>> ArticleFormSet = formset_ ... factory ( ArticleForm ) これで ArticleFormSet という名前のフォームセットクラスが作成されました。フォームセットをインスタンス化することで、フォー ... ... ようにします: >>> from django.forms import ModelForm >>> from myapp.models import Article # Create the form class. >>> class ArticleForm ( ModelForm ): ... class Meta : ... model = Article ... fields = [ "pub_date" , "headline" , "content" , "reporter" ] ... ... # Creating a form to add an article. >>> form = ArticleForm () # Creating a form to change an existing article. >>> article = Article . objects . get ( pk = 1 ) >>> form = ArticleFor ... ージをオーバーライドできます。 from django.core.exceptions import NON_FIELD_ERRORS from django.forms import ModelForm class ArticleForm ( ModelForm ): class Meta : error_messages = { NON_FIELD_ERRORS : { "unique_together" : " %(model_name)s 's %(field_labels ... ... ようにします: >>> from django.forms import ModelForm >>> from myapp.models import Article # Create the form class. >>> class ArticleForm ( ModelForm ): ... class Meta : ... model = Article ... fields = [ "pub_date" , "headline" , "content" , "reporter" ] ... ... # Creating a form to add an article. >>> form = ArticleForm () # Creating a form to change an existing article. >>> article = Article . objects . get ( pk = 1 ) >>> form = ArticleFor ... ージをオーバーライドできます。 from django.core.exceptions import NON_FIELD_ERRORS from django.forms import ModelForm class ArticleForm ( ModelForm ): class Meta : error_messages = { NON_FIELD_ERRORS : { "unique_together" : " %(model_name)s 's %(field_labels ... ... 1.3 if you pass in empty dictionary the FormSet will raise a ValidationError . 以下は FormSet を使用した例です。 >>> class ArticleForm ( Form ): ... title = CharField () ... pub_date = DateField () ... >>> ArticleFormSet = formset_factory ( ArticleForm ) 以 ... 下のコードでは ValidationError が発生します。 >>> ArticleFormSet ({}) Traceback (most recent call last): ... ValidationError : [u'ManagementForm data is missing or has been tampered wi ... th'] 空の FormSet をインスタンス化する必要がある場合は、データを渡さないか None を渡します。 >>> formset = ArticleFormSet () >>> formset = ArticleFormSet ( data = None ) Callables in templates ¶ 以前は、テンプレート内の呼び出し可能な要素は、 ... ... 1.3 if you pass in empty dictionary the FormSet will raise a ValidationError . 以下は FormSet を使用した例です。 >>> class ArticleForm ( Form ): ... title = CharField () ... pub_date = DateField () ... >>> ArticleFormSet = formset_factory ( ArticleForm ) 以 ... 下のコードでは ValidationError が発生します。 >>> ArticleFormSet ({}) Traceback (most recent call last): ... ValidationError : [u'ManagementForm data is missing or has been tampered wi ... th'] 空の FormSet をインスタンス化する必要がある場合は、データを渡さないか None を渡します。 >>> formset = ArticleFormSet () >>> formset = ArticleFormSet ( data = None ) Callables in templates ¶ 以前は、テンプレート内の呼び出し可能な要素は、 ... ... バリデーションを admin に追加する ¶ The admin uses ModelForm . To add custom validation, provide your own ModelForm : class ArticleForm ( forms . ModelForm ): def clean_name ( self ): # do something that validates your data return self . cleaned_data [ "name ... " ] Then configure the ModelAdmin to use the form: class ArticleAdmin ( admin . ModelAdmin ): form = ArticleForm Or configure an InlineModelAdmin to use the form: class ArticleInline ( admin . TabularInline ): model = Article form = Ar ... ... バリデーションを admin に追加する ¶ The admin uses ModelForm . To add custom validation, provide your own ModelForm : class ArticleForm ( forms . ModelForm ): def clean_name ( self ): # do something that validates your data return self . cleaned_data [ "name ... " ] Then configure the ModelAdmin to use the form: class ArticleAdmin ( admin . ModelAdmin ): form = ArticleForm Or configure an InlineModelAdmin to use the form: class ArticleInline ( admin . TabularInline ): model = Article form = Ar ... 2026年10月08日