gpt4 book ai didi

python - 通过 urlopen 打开远程文件并将其添加到 FileField

转载 作者:行者123 更新时间:2023-11-30 23:43:01 26 4
gpt4 key购买 nike

我有一个类似的问题: how to manually assign imagefield in Django

除了我的文件来自远程主机,并且我只得到一个网址,所以类似于:

class Book(models.Model):
name = models.CharField()
url = models.URLField()
file = models.FileField(null=True, blank=True, editable=False)

class BookForm(forms.ModelForm):
class Meta:
model = Book

def view(request):
if request.POST:
form = BookForm()
if form.is_valid():
request = form.instance.source_url
try:
f = urlopen(request)
# ...create open file obj...
form.instance.local_file.save(form.instance.ref, f.read(), True)

except Exception:
print 3

在这种情况下,我应该如何将 f 转换为打开的文件对象,以便保存其内容?

最佳答案

使用requests这是微不足道的。

import requests
from StringIO import StringIO

r = requests.get(file_url)
f = StringIO(r.content)

# f.read()

最后,正如所写 - 当您重新分配传入的 request 时,您的代码将导致问题。您应该更改此行 request = form.instance.source_url 到其他类似 file_url = from.instance.source_url.

关于python - 通过 urlopen 打开远程文件并将其添加到 FileField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11064531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com