[英]How to upload file to server with django?
我為我的問題找到了這個非常簡單的代碼,但我試圖在我的項目中重復它,但沒有結果。 我認為我做的一切都是正確的,但結果很糟糕。
我這樣做:
表格.py
class UploadFileForm(forms.Form):
docfile = forms.FileField(
label='select file pls'
)
視圖.py
class CabinetView(TemplateView, UploadFileForm):
template_name = 'cabinet.html'
def get_context_data(self, **kwargs):
if not self.request.user.is_authenticated() or self.request.user.is_anonymous():
raise ValueError('You are not log in. Please do it.')
context = super(CabinetView, self).get_context_data(**kwargs)
if self.request.user.first_name:
context['current_user'] = self.request.user.first_name
else:
context['current_user'] = self.request.user
return context
def post(self, request):
if self.request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
my_file = self.request.FILES['docfile']
print my_file.name
else:
print 'invalid'
return render(self.request, 'cabinet.html', {'form': form})
html模板:
<body>
<form method="post">{% csrf_token %}
{{ form }}
<p><input type="submit" value="Upload"/></p>
</form>
</body>
我正在等待上傳文件,但是當我嘗試上傳文件時(我有按鈕“瀏覽...”,我在選擇文件后嘗試推送它)終端說:
POST /cabinet/ HTTP/1.1 200 5740
form: <tr><th><label for="id_docfile">select file pls:</label></th><td><ul class="errorlist"><li>This field is required.</li></ul><input id="id_docfile" name="docfile" type="file" /></td></tr>
invalid
因此,表單無效。 我不明白為什么。
對不起,很簡單的問題。 如果我的問題有任何問題,我很抱歉。 這是我在 stackoverflow 上的第一個問題。
我的設置是:Python 2.7 Django 1.9.7 Ubuntu 14.04
代替
my_file = self.request.FILES['file']
和
my_file = self.request.FILES['docfile']
在你的 views.py 中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.