图像不是通过django表格上传的

时间:2017-04-24 04:37:43

标签: django

我的观点

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解决了其他问题,但没有解决地雷问题。怎么了?

3 个答案:

答案 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()将自动保存该字段。