フォームを使用した Django でのコーディング。フォームが GET の場合、すべてのフィールドに常に「このフィールドは必須です」というエラーが表示されるという問題がありますが、フォームが POST の場合は問題ありません。簡単な例 (部分的なコード) を次に示します。
ビュー.py:
def login(request):
if request.method == 'GET':
form = RegisterForm (request.GET)
else:
form = RegisterForm ()
return render_to_response('register.html', locals(), context_instance=RequestContext(request))
register.html:
<form action = "" method = "GET">
<table style = "border: none;">
<tr>
<td class = "login"><strong>email:</strong></td>
<td class = "login">{{ form.email }}</td>
<td><span class = "error">{{ form.errors.email }}</span></td>
</tr>
...
</table>
</form>
すべての「GET」を「POST」に変更すると、すべて問題ありません。そうしないと、「form.errors.email」は常に「このフィールドは必須です」をスローします。エラー。
別の奇妙なこと... request.GET で開始されているフォーム オブジェクトが表示されないようです。Django Book 2.0 には、request.POST で開始されたフォーム オブジェクトのみが表示されます。私がここに欠けているものはありますか?
ヒントをありがとう。
編集: Craig と Ignacio からのヒントに感謝します。ただし、私の質問は、このフォームで何をしているのかに関係なく、GET または POST のいずれかで、フォームに GET があると常に「フィールドが必要です」というフォームエラーが発生するということです。それは私が理解していないメカニズムです。その上で何か助けていただければ幸いです、ありがとう。