我正在尝试将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
答案 0 :(得分:0)
我设法让它发挥作用。我所要做的就是为FileField
添加一个默认值,指向已有的文件。但我仍然不确定为什么会这样。