1
誰かがform_factory、またはmodelform_factoryがフォーム/モデルフォームと関連しているものを簡潔に説明しようとしますか?フォームファクトリとは何ですか、いつフォームファクトリを使用する必要がありますか?
- なぜ工場を使用しますか?
- ファクトリメソッドの公式な技術的定義はありますか?
誰かがform_factory、またはmodelform_factoryがフォーム/モデルフォームと関連しているものを簡潔に説明しようとしますか?フォームファクトリとは何ですか、いつフォームファクトリを使用する必要がありますか?
modelform_factory
方法はModelForm
クラスを返すメソッドです。なぜそれが有用なのかの例があります。
あなたは、単一のモデルのフォームを使用して単純なビューを持っている場合は、工場の必要がない、あなたは、単にフォームを定義することができます。
class ProductForm(forms.ModelForm):
class Meta:
model = Product
def add_product_view(request):
form = ProductForm()
...
しかし、あなたのビューを処理するために必要がある場合は、複数のモデルを使用する場合は、すべてのモデルにフォームクラスを定義する必要はありません。 modelform_factory
を使用すると、フォームクラスを動的に作成できます。
apps.get_model('newapp', 'mymodel')
def add_model_view(request, model_name):
Model = apps.get_model('myapp', model_name)
Form = modelform_factory(Model)
Djangoの管理者は、動的モデルのフォームクラスを生成するためにmodelform_factory
を使用しています。つまり、Django管理者にモデルを登録するたびに、モデルフォームを定義する必要はありません。