私はこれでかなり徹底的に混乱しています。私は自分のフォームに接続して話すためにどこにいるのか完全にはわかりません。Django + HTMLフォームでファイルをアップロード
class UploadFileForm(forms.Form):
title = forms.CharField(max_length=50)
file = forms.FileField()
上記は私のモデルのフォームです。以下はビューです。
<form action="/upload/" enctype="multipart/form-data" method="post">
{% csrf_token %}
<p>
Please specify a file, or a set of files:<br>
<input type="text" name="title" size="30">
<input name="file" type="file" size="40">
</p>
<div>
<input type="submit" value="Send">
</div>
</form>
私は自分のコードの一部を持っていたが、他のスタックオーバーフローの質問のカップルを見て、私はそれを簡素化文書を熟読した後:ここで
def upload_file(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
response = "Form is valid"
else:
response = "Failed to upload"
return HttpResponse(response)
はフォームです。 (モデルとビューの機能はこのスレッドで見つけることができます
File upload with Django: Invalid form)
私は実際にフォームからサーバーに接続することになっています。私は自分の設定をして、実際にはこれらのファイルが存在するはずのメディアルートが存在するようにしました。フォームの入力タイプが間違っている可能性があります。
アップロードに失敗しましたので、フォームが何らかの形で無効であることを意味しています。私はちょうどこれが正確に一緒に来る方法を本当に知らない。
urls.pyファイルに 'upload'のURLがありますか?ここに紹介します:https://docs.djangoproject.com/ja/dev/intro/tutorial03/#design-your-urls – bernie
はい、あります。/upload/endpointがupload_fileビューに指示します – Wuzseen
レスポンス= "アップロードに失敗しました"の後、form.errorsを印刷して、結果を貼り付けてください。このような貧弱なフォームテンプレートは使用しないでください。エラーをサポートしていないし、投稿された値を再利用することもできません。フォームテンプレートを作成する方法は次のとおりです。https://docs.djangoproject.com/en/dev/topics/forms/#customizing-the-form-template – jpic