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