Django FileField更新写入磁盘但不写入数据库

时间:2017-12-08 20:31:35

标签: django file-upload django-models

我正在尝试将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

1 个答案:

答案 0 :(得分:0)

我设法让它发挥作用。我所要做的就是为FileField添加一个默认值,指向已有的文件。但我仍然不确定为什么会这样。