これらの変数がフォームへの入力を目的としている場合は、request.POSTオブジェクトをフォーム コンストラクターに直接安全に渡すことができます。
if request.method == 'POST':
form = MyForm(request.POST)
フォームは自動的に正しい値を正しいフォーム フィールドに渡し、存在しないキーにはデフォルトを使用し、欠落しているキーには空白のフィールドを作成します (補遺を参照)。
フォームを処理しようとしている場合は、上記のようにフォーム オブジェクトを作成し、そのオブジェクトから値を読み取ることをお勧めします。
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
# You may process these variables here
print form.appVersion
print form.appName
print form.appCodeName
検証コードもフォーム クラスに配置するのが最適です。そうすれば、form.is_valid()が返さTrueれた場合、操作するクリーンなデータセットがあることがわかります。
注: Django のドキュメントでは、より明示的であるため、 amalgamated variable ではなくrequest.POSTorを直接使用することをお勧めしています。request.GETrequest.REQUEST
補遺:
この場合、バインドされたフォームとバインドされていないフォームの違いを理解することが重要です。でバインドされていないフォームを作成するとform = MyForm()、フォームがインスタンス化されるときに、すべてのフィールドinitialに各フィールドのプロパティが入力されます (存在する場合)。たとえば、次のコードを使用します。
from django import forms
class MyForm(forms.Form):
appVersion = forms.CharField(initial='1.0')
appName = forms.CharField()
appCodeName = forms.CharField()
フォームは、値が「1.0」の appVersion で初期化されます。ただし、 POST リクエストを次のようなフォームにバインドするとform = MyForm(request.POST)、初期プロパティは無視されます。つまり、POST dict に appVersion キーが含まれていない場合、そのフィールドは空白のままになります。フィールドが必須でない限り、フォームは引き続き検証form.appVersionされ、検証後にビューで変更できます。