【问题标题】:ValueError: The 'field_name' attribute has no file associated with it - only when updating?ValueError:“field_name”属性没有与之关联的文件-仅在更新时?
【发布时间】:2021-05-21 20:36:43
【问题描述】:

我使用 DRF 和 django-storages 将文件上传到 S3 存储桶。

我可以从管理员或从 POST 到 API 端点创建任何带有文件的新条目。

但由于某种原因,一旦我尝试更新实例(无论是从管理员还是从 API 端点),我都会收到一个 ValueError,这似乎表明 DRF 找不到文件。

但是当我使用 Django 的 admin 或 shell 时,我看到文件已正确保存(FieldFile on instance)并且文件已保存在存储桶中。

我不会覆盖任何东西:不是管理表单,不是序列化程序的更新方法,不是视图的检索方法等。

我不知道这怎么可能。

有什么建议吗?

【问题讨论】:

    标签: django-rest-framework python-django-storages


    【解决方案1】:

    我最终找到了解决方案。在我的代码中的某个地方,序列化程序的一个字段有一个to_representation() 方法,它返回instance 而不是instance.url。我希望这对任何人都有帮助。

    【讨论】:

      猜你喜欢
      • 2023-02-21
      • 2021-02-11
      • 2020-03-08
      • 2020-08-11
      • 1970-01-01
      • 2016-02-06
      • 2019-02-19
      • 1970-01-01
      • 2020-01-16
      相关资源
      最近更新 更多