我看到很多类似的问题,但找不到任何答案。我只需要使用Django FileField上传或处理文件。这就是我所拥有的:
forms.py
class UploadForm(forms.Form):
packet_file = forms.FileField()
base.html文件
<form action="process" method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
views.py
def index(request):
form = UploadForm() # An unbound form
return render(request, 'base.html', {'form': form})
def process(request):
if request.method == 'POST': # If the form has been submitted...
form = UploadForm(request.POST, request.FILES) # A form bound to the POST data
if form.is_valid():
因此 index()处理空表单的初始呈现。当我填写它并进入 process()时,它总是返回
此字段是必填字段。
FileField表单字段旁边。
这里有什么问题?我错过了任何一般的Django设置,如MEDIA文件存储等等吗?在这个阶段,当我无法验证表格时,它是否甚至是必要的?
非常感谢 TC
答案 0 :(得分:1)
但它并没有这样做。所以我有两个用于打印简单表单的base.html模板,但是唯一的第一个模板总是被调用,而且它没有 enctype =&#34; multipart / form-data&#34; < / em>
这就是它。回去学习基本的Django原则; - )