python - Django ModelForm Imagefield 上传

标签 python django modelform

我对 Django 很陌生,在使用 ModelForm 处理图像上传时遇到了问题。 我的模型如下:

class Project(models.Model):
    name = models.CharField(max_length=100)
    description = models.CharField(max_length=2000)
    startDate = models.DateField(auto_now_add=True)
    photo = models.ImageField(upload_to="projectimg/", null=True, blank=True)

模型形式如下:

class AddProjectForm(ModelForm):
    class Meta:
        model = Project
        widgets = {
            'description': Textarea(attrs={'cols': 80, 'rows': 50}),
        }
        fields = ['name', 'description', 'photo']

而查看功能是:

def addProject(request, template_name):
if request.method == 'POST':
    addprojectform = AddProjectForm(request.POST,request.FILES)
    print addprojectform
    if addprojectform.is_valid():
        newproject = addprojectform.save(commit=False)
        print newproject
        print request.FILES
        newproject.photo = request.FILES['photo']
        newproject.save()
        print newproject.photo
else:
    addprojectform = AddProjectForm()

newProposalNum = projectProposal.objects.filter(solved=False).count()
return render(request, template_name, {'addprojectform':addprojectform,
                                       'newProposalNum':newProposalNum})

模板是:

<form class="bs-example form-horizontal" method="post" action="">{% csrf_token %}
                      <h2>Project Name</h2><br>
                      {{ addprojectform.name }}<br>
                      <h2>Project Description</h2>
                      {{ addprojectform.description }}<br>
                      <h2>Image Upload</h2><br>
                      {{ addprojectform.photo }}<br>
                      <input type="submit" class="btn btn-success" value="Add Project">
                  </form>

谁能帮助我或者你能举个图片上传的例子吗? 谢谢!

最佳答案

好的,谢谢大家。我发现自己犯了一个愚蠢的错误。 我应该添加 enctype="multipart/form-data"<form> 否则,它不会上传文件。

关于python - Django ModelForm Imagefield 上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19628979/

相关文章:

python - Python 3.5 中的 Avro 编写器

Django 的 ModelForm unique_together 验证

python - Python中的内存高效int-int dict

python - 如何将命令行参数传递给在 vscode 中运行的 pytest 测试

python - 使用 win32com.client 模块在 Python 中将 .XLSX 转换为 .XLS

django - 如何在 django 管理字段中添加自定义 html?

django - App Engine 灵活 : Timed out waiting for the app infrastructure to become healthy

python - 来自请求用户的 django 用户组

python - 如何指定 Django 表单中字段的顺序?