0

所以我正在尝试通过 POST 上传 csv 文件并将其保存到变量中。我已经查看了关于文件上传的 django文档。我只是不明白表格的用途?在这种情况下的目的是什么?

他们使用带有表单的示例:

from django import forms
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response

# Imaginary function to handle an uploaded file.
from somewhere import handle_uploaded_file

class UploadFileForm(forms.Form):
    title = forms.CharField(max_length=50)
    file  = forms.FileField()

def upload_file(request):
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            handle_uploaded_file(request.FILES['file'])
            return HttpResponseRedirect('/success/url/')
    else:
        form = UploadFileForm()
    return render_to_response('upload.html', {'form': form})

上传html:

<form enctype="multipart/form-data" action="/upload/" name="test" method="post">
    <input id="file" type="file" name="test" />
    <input id="signUpSubmit" type="submit" value="Submit">
</form>
4

1 回答 1

3

模型.py

from django.db import models

class Upload(models.Model):
    name = models.CharField(max_length=100)
    file = models.FileField(upload_to="images")

表格.py

from django import forms
from app_name.models import Upload

class UploadForm(forms.ModelForm):
    class Meta:
        model = Upload

视图.py

def upload_file(request):
    if request.method == 'POST':
        form = UploadForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/success/url/')
    else:
        form = UploadFileForm()
    return render_to_response('upload.html', {'form': form})

上传.html

<form enctype="multipart/form-data" action="/upload/" name="test" method="post">
    {% csrf_token %}
    {{form.as_p}}
    <input id="signUpSubmit" type="submit" value="Submit">
</form>
于 2013-03-28T07:19:24.983 回答