Обновление Django FileField записывает на диск, но не в базу данных

Vlad Calin спросил: 14 ноября 2017 в 06:51 в: django

Я пытаюсь обновить 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 ответов