使用窗体创建对象时如何保存图像路径

2024-03-29 14:04:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我在django 1.6中有这样一个模型:

class Instance(models.Model):
  ...
  image = models.ImageField(upload_to='flats_photo',null=True, blank=True)
  ...

形式:

class InstanceForm(ModelForm):
    class Meta:
       model = Instance
       fields=[...,'image',...]

创建新对象时,我使用以下视图:

def add_instance(request):
   if request.POST:
      form=InstanceForm(request.POST)
      if form.is_valid():
         f = InstanceForm(request.POST)
         new_instance=f.save()

   else:form=InstanceForm()

   locals().update(csrf(request))
   return render_to_response(...)

创建新对象的所有字段,但不创建字段图像。在那里没有图像。在django管理我看到:图像没有选择文件。当我从管理员添加对象时,一切都很好。如何解决这个问题


Tags: to对象djangoinstance图像imageformtrue
1条回答
网友
1楼 · 发布于 2024-03-29 14:04:45

文件数据不在请求.POST它在里面request.FILES文件你知道吗

https://docs.djangoproject.com/en/dev/topics/http/file-uploads/#handling-uploaded-files-with-a-model

把你的功能改成

def add_instance(request):
   if request.POST:
      form=InstanceForm(request.POST, request.FILES)
      if form.is_valid():
         new_instance=form.save()
   else:
      form=InstanceForm()

   locals().update(csrf(request))
   return render_to_response(...)

相关问题 更多 >