2012-08-16 61 views
10

我一直在抓我的头FileField。 FileField是否需要单独的过程?Django 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) 

我forms.py

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

我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

很好的问题时 - 有同样的问题,完全忘了我刚刚在学习FileField时阅读了这篇文章。感谢您提问。 – nicorellius 2014-06-19 18:47:15

回答

27

您需要包括的文件创建窗体

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

另外,还要确保你的表格有正确的enctype

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

这么简单;-)谢谢! +1 – nicorellius 2014-06-19 18:46:30

+0

它很简单,但错过了。但Mikael你节省了我的时间,谢谢 – Mohini 2015-08-14 12:07:29