Django图像字段未在前面更新

时间:2015-11-16 19:27:35

标签: python django python-3.x django-forms django-templates

我正在尝试让我的应用验证应用模板中的图片上传字段,并保存上传的所有新图片。管理方面的一切都很好,但是当我在前面改变图像时,它并没有得到保存。

这是我的模特

def imageupload(instance, filename):
    return os.path.join('static/petition-photos/', filename)

# Create your models here.

class Petition(models.Model):
    title = models.CharField(max_length= 90, default="Enter petition title here")
    created_on = models.DateTimeField(auto_now_add=True)
    image = models.ImageField(null=False, upload_to=imageupload)
    video = models.CharField(max_length=600, default="Enter an external video link")
    petition = models.TextField(null=False, default="Type your petition here")
    created_by = models.ForeignKey(User)

这是我的观点类:

class NewPetitionView(generic.edit.CreateView):
model = Petition
template_name = 'petition/petition_form.html'
fields= ['title','petition', 'image', 'video']
success_url = '/dashboard/'

def form_valid(self, form):
    form.instance.created_by = self.request.user
    return super(NewPetitionView, self).form_valid(form)

这是我的表单模板:

{% include 'layout/header.html' %}

{% block content %}
    <form action="" method="post">
        {{form.as_p}}
        <button type="submit">Submit</button>
        {% csrf_token %} 
    </form>
{% endblock %}

当我将图片上传到新帖子或尝试编辑其中一个已发布项目的图片字段时,我会得到一个&#34;此字段是必需的&#34;通知。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您需要在<form>添加enctype="multipart/form-data"才能让文件上传工作。

<form action="" method="post" enctype="multipart/form-data">

django doc.