【问题标题】:How does one alter a FileField of an object in Django?如何在 Django 中更改对象的 FileField?
【发布时间】:2011-09-17 13:43:35
【问题描述】:

我有一个名为 ClassFile 的模型,它采用 FileField(文档):

class ClassFile(models.Model):

    timestamp = models.DateTimeField(auto_now_add=True, editable=False)
    document = models.FileField(upload_to="classFiles/%Y/%m/%d/")
    description = models.TextField('File description', max_length=500)
    shown = models.BooleanField('Allow Students to view this', default=True)
    course = models.ForeignKey(Course, related_name='files', editable=False)
    uploader = models.ForeignKey(User, related_name='class_files_uploaded')

在提交文件上传表单后尝试保存以下 ClassFile 实例失败,因为 request.FILES['file'] 显然不存在:

f = ClassFile(
                    document = request.FILES['file'],
                    description = form.cleaned_data['description'],
                    shown = form.cleaned_data['shown'],
                    course = course,
                    uploader = request.user,
                )
f.save()

我想知道我是否以正确的方式保存了这个对象。 request.FILES['file'] 的类型是否正确?谢谢。

【问题讨论】:

    标签: python django django-file-upload


    【解决方案1】:

    你文件的key是字段名document(不是file),最好用cleaned_data

    document = form.cleaned_data['document']
    

    form.cleaned_data['document'](或request.FILES['document'])返回一个UploadedFile 对象。

    【讨论】:

      猜你喜欢
      • 2012-08-22
      • 1970-01-01
      • 1970-01-01
      • 2013-10-31
      • 2022-01-16
      • 2020-11-19
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      相关资源
      最近更新 更多