我有这些模特:
class Gallery(models.Model):
HeadImage = models.ImageField(upload_to="gallery",blank=True,null=True)
class News(Gallery):
Name=models.CharField(max_length=100)
#some other fields
你知道有了这个继承,新闻模型有一个gallery_ptr
字段,现在我要使用ajax更新这个字段:
$.ajax({
url:'{% url DrHub.views.editNews dr.webSite,news.pk %}',
type:'POST',
data:{id_HeadImage:$('#id_HeadImage').val(),id_title:$('#id_title').val(),id_category:$('#id_category').val(),id_description:$('#id_description').val()},
})
在views.py
我这样做:
gForm=GalleryForm(request.POST['id_HeadImage'], request.FILES,instance=newsInstance.gallery_ptr)
if gForm.is_valid():
gForm.save()
else:
raise Http404
但Image
的{{1}}将无法保存,而Gallery
为is_valid()
!
任何建议?
答案 0 :(得分:3)
你不能简单地像这样在ajax上传文件。此外,我相信$('#id_HeadImage')。val()只包含文件名。
答案 1 :(得分:2)
表单有效,但您实际上没有处理上传的文件(即读取并保存)。看看example in the django docs。 击>
你是对的,模型表格应该为你上传。 Have you seen this related question?你确定你的模板声明了如下形式:
<form action="." method="POST" enctype="multipart/form-data">
即。与multipart/form-data