我有一个看起来像这样的照片模型
class Photo(models.Model):
title = models.CharField(max_length=100, blank=True)
width = models.IntegerField()
height = models.IntegerField()
image = models.ImageField(upload_to=upload_to_callable, width_field="width", height_field="height")
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey()
create_date = models.DateTimeField(auto_now_add=True)
modified_date = models.DateTimeField(auto_now=True)
site = models.ForeignKey(Site)
在我的一个测试中,我需要以编程方式创建此模型。这就是我正在做的事情
def _create_random_image(self):
import Image,ImageDraw
img = Image.new("RGB", (300,300), "#FFFFFF")
draw = ImageDraw.Draw(img)
r,g,b = rint (0,255), rint(0,255), rint(0,255)
dr = (rint(0,255) - r)/300.
dg = (rint(0,255) - g)/300.
db = (rint(0,255) - b)/300.
for i in range(300):
r,g,b = r+dr, g+dg, b+db
draw.line((i,0,i,300), fill=(int(r),int(g),int(b)))
tmpfilename = "/tmp/test36052.png"
img.save(tmpfilename, "PNG")
f = file(tmpfilename)
return f
def testHomePageImage(self):
tmpfile = self._create_random_image()
photo = Photo.objects.create(image=tmpfile,
title=site1_home_page.title,
site=self.site1,
content_object = site1_home_page)
我收到以下错误
AttributeError:'file'对象没有属性'width'
是否有一个内部django对象扩展了我可以使用的文件对象?
答案 0 :(得分:1)
尝试直接返回ImageFile(f)
而不是f
。 ImageFile
位于django.core.files.images.ImageFile
。在我的头顶,我认为这样做。
编辑:纠正错误,所以它是正确的。