【问题标题】:Django FileField update writes to disk but not to databaseDjango FileField 更新写入磁盘但不写入数据库
【发布时间】:2018-05-23 03:13:36
【问题描述】:

我正在尝试将FileField 更新为从互联网下载的图像。我有以下代码

# update profile pic
pic_url = fb_login_data['picture']['data']['url']
pic_url_parsed = urllib.parse.urlparse(pic_url)
image_req = urllib.request.urlretrieve(pic_url)
with open(image_req[0], 'rb') as f:
    user.profile_image.save(os.path.basename(pic_url_parsed.path),
                                        File(f))

这种行为很奇怪:图像已正确保存到磁盘中它应该在的 MEDIA_ROOT 目录中,但在数据库中,该字段保持为空。我也试过手动拨打user.save()

您有什么想法为什么会发生这种情况以及如何正确更新 FileField?

使用 Django 2.0 和 Python 3.6.3

【问题讨论】:

    标签: django file-upload django-models


    【解决方案1】:

    我只是设法让它工作。我所要做的就是为FileField 添加一个默认值以指向一个已经存在的文件。但我仍然不确定为什么会这样。

    【讨论】:

      猜你喜欢
      • 2011-12-13
      • 1970-01-01
      • 1970-01-01
      • 2013-02-03
      • 1970-01-01
      • 2018-02-14
      • 1970-01-01
      • 1970-01-01
      • 2015-05-22
      相关资源
      最近更新 更多