使用Django + HTML表单上传文件

时间:2012-02-23 19:15:17

标签: python html django forms

我对此非常感到困惑,我不完全确定我应该在哪里连接我的表格并查看。

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():
            response = "Form is valid"
        else:
            response = "Failed to upload"
    return HttpResponse(response)

以下是表格:

<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>

我有一些自己的代码,但在看到其他一些Stack Overflow问题并仔细阅读文档后,我对其进行了简化。 (模型和视图函数可以在此线程File upload with Django: Invalid form

中找到

我真的迷失了我应该如何将这些从表单连接到视图到服务器。我已经设置了我的设置,以便确实存在这些文件应该去的媒体根目录。我觉得我可能在表单中输入了错误的输入类型。

我一直收到上传失败的回复,这意味着表单无效。我真的不知道这到底是怎么结合在一起的。

1 个答案:

答案 0 :(得分:0)

如果您的模型位于其下方,则应使用ModelForm。因此,您只需要在视图中执行form.save()以保存对象。