相关疑难解决方法(0)

以编程方式将图像保存到Django ImageField

好吧,我已经尝试了几乎所有的东西,我无法让它工作.

  • 我有一个带有ImageField的Django模型
  • 我有通过HTTP下载图像的代码(测试和工作)
  • 图像直接保存到'upload_to'文件夹中(upload_to是在ImageField上设置的文件)
  • 我需要做的就是将现有的图像文件路径与ImageField相关联

我已经用6种不同的方式编写了这段代码.

我遇到的问题是我写的所有代码都会导致以下行为:(1)Django将生成第二个文件,(2)重命名新文件,在文件末尾添加_ name,然后(3)不传输任何数据,基本上是一个空的重命名文件.'upload_to'路径中剩下的是2个文件,一个是实际图像,一个是图像的名称,但是是空的,当然ImageField路径设置为Django尝试创建的空文件.

如果不清楚,我会试着说明:

## Image generation code runs.... 
/Upload
     generated_image.jpg     4kb

## Attempt to set the ImageField path...
/Upload
     generated_image.jpg     4kb
     generated_image_.jpg    0kb

ImageField.Path = /Upload/generated_image_.jpg
Run Code Online (Sandbox Code Playgroud)

如果Django没有尝试重新存储文件,我怎么能这样做呢?我真正喜欢的是这个效果......

model.ImageField.path = generated_image_path
Run Code Online (Sandbox Code Playgroud)

......但当然这不起作用.

是的,我已经经历这里的其他问题,如走了这一个,以及对Django的DOC 文件

更新 进一步测试后,它只在Windows Server上的Apache下运行时才会出现此问题.在XP上的"runserver"下运行时,它不会执行此行为.

我很难过.

这是在XP上成功运行的代码...

f = open(thumb_path, 'r')
model.thumbnail = File(f)
model.save()
Run Code Online (Sandbox Code Playgroud)

python django django-models

192
推荐指数
9
解决办法
12万
查看次数

Django:从图像url在ImageField中添加图像

请原谅我丑陋的英语;-)

想象一下这个非常简单的模型:

class Photo(models.Model):
    image = models.ImageField('Label', upload_to='path/')
Run Code Online (Sandbox Code Playgroud)

我想从图像URL创建一个照片(即,不是在django管理站点中手动创建).

我想我需要做这样的事情:

from myapp.models import Photo
import urllib

img_url = 'http://www.site.com/image.jpg'
img = urllib.urlopen(img_url)
# Here I need to retrieve the image (as the same way that if I put it in an input from admin site)
photo = Photo.objects.create(image=image)
Run Code Online (Sandbox Code Playgroud)

如果不告诉我,我希望我已经很好地解释了这个问题.

谢谢 :)

编辑:

这可能有效,但我不知道如何转换content为django文件:

from urlparse import urlparse
import urllib2
from django.core.files import File

photo = Photo()
img_url = 'http://i.ytimg.com/vi/GPpN5YUNDeI/default.jpg'
name = urlparse(img_url).path.split('/')[-1]
content = urllib2.urlopen(img_url).read()

# problem: content …
Run Code Online (Sandbox Code Playgroud)

python django urllib django-models

82
推荐指数
6
解决办法
5万
查看次数

标签 统计

django ×2

django-models ×2

python ×2

urllib ×1