私はDjangoで次の設定をしています。画像アップロード用の CharField および FileField によって検証されるテキスト入力。フィールドが空の場合の望ましい応答は、フォームに元のデータが存在し、ユーザーが行う必要があるのは不足しているデータを入力することだけです。検証が必要になる可能性のある 2 つの状況と、アプリの応答方法の現在の状態をリストしました。
- テキストは存在しますが、イメージは忘れられています。リロード後の結果: 元々投稿にあったテキストがまだ存在し、ユーザーがしなければならないことはファイルをアップロードすることだけです。これは希望どおりに機能します。優秀な
- テキストは忘れられていますが、イメージは存在します。リロード後の結果: 画像が存在しなくなり、ユーザーが再度アップロードする必要がありますが、これは望ましくありません。
検証後にファイルデータを保持するにはどうすればよいですか?
view.py
def signin(request, template="signin.html"):
c['form'] = SignInForm()
if request.method == 'POST':
c['form'] = SignInForm(request.POST, request.FILES)
if c['form'].is_valid():
#TODO: Commit data
return redirect("somwhere_else.html")
return render(request, template, c)
フォーム.py
class SignInForm(forms.Form):
name = forms.CharField(max_length=50,required=True)
photo_input = forms.FileField(required=True)