Django FileField上传对我不起作用

时间:2012-08-16 09:06:08

标签: django django-models django-forms django-views

我一直在挠头FileField。 FileField是否需要单独的进程?

虽然我的网址已保存..但我的文件没有上传...我做错了什么?

这是我的models.py ...

class OpLink(models.Model):
    user = models.ForeignKey(User)
    file = models.FileField(blank=True, null=True, upload_to="uploads")
    url = models.URLField(blank=True, null=True)

my forms.py

class OpLinkForm(ModelForm):
    class Meta:
        model = OpLink
        exclude = ('user')

my views.py

oplinkform = oplinkform(request.POST)
                oplink = oplinkform.save(commit=False)
                oplink.user = user
                oplink.save()

和我的html来处理它。

<div class="span5">
                            {{ oplinkform.url|add_class:"span4"|attr:"Placeholder:URL for the item" }}
                            <br><h4>OR</h4><br>
                            {{ oplinkform.file|add_class:"input-file" }}
                            <br />
                            <input class='btn btn-primary btn-large' type="submit" value='Post' name='action'>
</div>

1 个答案:

答案 0 :(得分:35)

创建表单时需要包含文件

oplinkform = oplinkform(request.POST, request.FILES)

还要确保您的表单具有正确的enctype

<form enctype="multipart/form-data"></form>