我的观点
def apost(request):
if request.method =='POST':
form = APostForm(request.POST, request.FILES)
if form.is_valid():
form = form.save(commit=False)
form.slug = slugify(form.title)
form.save()
return redirect('apost')
else:
form = APostForm()
template_name = 'dadmin/form.html'
items = Post.objects.all()
context = {'title':'Add Post','form':form,'items':items}
return render (request, template_name, context)
我的表格
class APostForm(forms.ModelForm):
class Meta:
model = Post
fields = {'title','photo','content'}
模型
photo = models.ImageField(upload_to='images')
未上传图片已接受照片已选中,但点击保存时。它显示此字段是必需的错误。我在这里搜索了一些问题但是要求.FILES解决了其他问题,但没有解决地雷问题。怎么了?
答案 0 :(得分:1)
您应该在模板中使用上传表单:
<form class="form-horizontal form_middle" enctype='multipart/form-data' method="POST">
#apply logic for media upload
</form>
答案 1 :(得分:1)
在views.y中,你保存的表单也应该有request.FILES
studentProfileForm = StudentRegisterForm(request.POST, request.FILES)
if studentProfileForm.is_valid():
user = studentProfileForm.save()
答案 2 :(得分:-1)
文件上传在django中的模型表格中有点奇怪。 将 forms.py 更改为 -
class APostForm(forms.ModelForm):
photo=forms.FileField(label='Upload image') # or image field
class Meta:
model = Post
fields = {'title','content'}
form.save()将自动保存该字段。