我在我的模型中实现了一些ImageField并安装了PIL(不是最干净的安装)。事情似乎有效,因为我在管理员中获得了一个上传按钮,当我在视图中调用.url属性时,我得到了带有文件名+上传属性的字符串。 问题是该文件不存在,显然在保存模型后它不会上传。
有什么想法吗?
由于
以下是我的代码情况示例
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 :(得分:1)
确保在POSTing时将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')