【发布时间】:2016-06-30 07:37:01
【问题描述】:
我使用前端视图库创建了一个表单,用户可以在其中上传多个图像。我可以开发它,但图像不会保存到相关的租金中。为此,我必须从管理员手动分配租金。
Models.py
class Rental(models.Model):
name = models.CharField(_("Owner's Name"),max_length=255, blank=True,null=True)
email = models.CharField(max_length=120,blank=True,null=True)
class GalleryImage(models.Model):
rental = models.ForeignKey('Rental',on_delete=models.CASCADE,blank=True,null=True,
verbose_name=_('Rental'), related_name="gallery")
image = models.ImageField(blank=True,upload_to='upload/',null=True)
用于图片上传的views.py
class UploadImage(View):
model = Rental
def post(self,request,*args,**kwargs):
if request.FILES:
for file in request.FILES.getlist('image'):
print('file',file)
# rental = request.POST.get('rental', False)
# print('rental is', rental)
image = GalleryImage.objects.create(image=file)
image.save()
return HttpResponseRedirect('/')
class AddView(TemplateView): // upload form is in add.html template
template_name = 'rentals/add.html'
urls.py
url(r'^add/$', AddView.as_view(), name="add"),
url(r'^upload/image/$', UploadImage.as_view(), name="uploadImage"),
addrent.js(多张图片上传的ajax代码)
var image = [];
image = new FormData(files);
$.each(files,function(i,file){
image.append('image',file);
});
$.ajax({
url:"/upload/image/",
data:image,
contentType:false,
processData:false,
type:'POST',
mimeType: "multipart/form-data",
success: function(data) {
console.log('success');
}
});
}
我必须做些什么才能将多张图片保存到它们关联的出租实例中,比如第一张图片?
【问题讨论】:
-
我不明白您创建对象的方式,您使用“创建”,为什么不使用所有参数实例化对象而不是简单地保存它?除此之外,出租的参数没有明确传递给服务器(据我从您发布的代码中可以看出)。可以展示一下模板吗?
标签: python django django-views django-1.9