1

我在我的模型中实现了一些ImageField并安装了PIL(不是最干净的安装)。事情似乎工作,因为我在管理中得到一个上传按钮,当我在视图中调用.url属性时,我得到了文件名+它的上传属性的字符串。 问题是,该文件不存在,显然它不会上传,一旦我保存模型。Django ImageField:文件不上传

有什么想法?

感谢

这里是我的代码情况的样本

models.py

class My_Model(models.Model): 
[...] 
    image = models.ImageField(upload_to = 'images/my_models/main') 

view.py

'image': query.my_model.image.url 

结果:

static/images/my_models/main/theimage.png 
+0

您确定它是一个多部分窗体吗? – tback 2010-10-20 20:43:30

回答

1

确保您发帖时结合request.FILES的形式,而形式被声明为模板

这里多部分是从我的应用程序一个观点:

@login_required 
def submit(request): 
    if request.method == 'POST': 
     (Photo.objects.count()+1, request.FILES['photo'].name.split(".")[1]), request.FILES['photo'])} 
     form = PhotoForm(request.POST, request.FILES) 
     if form.is_valid(): 
      new = Photo(photo=request.FILES['photo'], name=request.POST['name']) 
      new.save()   
      return HttpResponseRedirect('/') # Redirect after POST 
    else: 
     form = PhotoForm() 
    return render_to_response('app/submit.html', {'form': form}, context_instance=RequestContext(request)) 

和PhotoForm类:

class PhotoForm(forms.ModelForm): 
    class Meta: 
     model = Photo 
     fields = ('name', 'photo') 
+0

mmmh我不是很熟悉你的方法...你不使用ImageField不是吗?当我查看服务器上的文件夹时,没有上载图像... – 2010-10-20 21:30:53

+0

@mαττjαĸøb - 我想你正在通过管理员上传文件? – 2010-10-20 22:39:59

+0

是的。我解决了它!问题是MEDIA_ROOT和MEDIA_URL的设置不正确。 – 2010-10-20 23:45:19