0
我正在嘗試在我的網站上添加簡單文件上傳頁面。每當我提交表單時,它會在文件選擇器上方顯示「此字段是必需的」,就好像它沒有通過它一樣。這是我的形式,模型和視圖。簡單文件上傳頁面無法正常工作
forms.py
from django import forms
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
class UploadFileForm(forms.Form):
MURRMACMOD = "MMM"
CUBE67 = "C67"
CUBE20 = "C20"
VDINCONN = "VDC"
IMPACT20 = "I20"
IMPACT67 = "I67"
CAT_CHOICES = (
(MURRMACMOD, 'Murrelektronik Mac Module'),
(CUBE67, 'Cube67/Cube67'),
(CUBE20, 'Cube20'),
(VDINCONN, 'Valve DIN Connectors'),
(IMPACT20, 'Impact 20'),
(IMPACT67, 'Impact 67')
)
article = forms.CharField(max_length=100)
title = forms.CharField(max_length=100)
file = forms.FileField()
cat = forms.ChoiceField(choices=CAT_CHOICES)
models.py
from django.db import models
class File(models.Model):
article = models.CharField(max_length=100)
title = models.CharField(max_length=100)
file = models.FileField()
cat = models.CharField()
views.py
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
from django.template import RequestContext
from files.forms import UploadFileForm
def upload_file(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return HttpResponseRedirect('/success/url/')
else:
form = UploadFileForm()
ctxt_dict = {
'form': form,
}
context = RequestContext(request, ctxt_dict)
return render_to_response('upload.html', context_instance=context)
我喜歡一些幫助你們,謝謝。編輯: 這是模板。
{% if user.is_staff %}
<form action="." method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
{% else %}
{% endif %}
</form>
您是否還可以添加您的模板(至少是表單部分和所有可能與表單相關的javascipt代碼)?謝謝:) – furins 2013-03-26 22:37:37
@furins我不認爲它很重要,但我添加了它。 – 2013-03-26 22:54:40
現在我明白了,我同意,沒關係:)謝謝 - PS你應該關閉if..else..endif語句中的表單標籤,否則你將有一個孤立的關閉標記 – furins 2013-03-26 22:57:30