[英]Django image field throws TypeError
我正在使用django写一个简单的网站来显示一些图片。 在我的模型中,我定义了一个图像模型和一个类别模型,以便我可以对每个图像进行分类:
class Image(models.Model):
title = models.CharField(max_length=200)
image = models.ImageField(upload_to='images')
tags = models.ManyToManyField(Category)
我想使用django内置的ImageField字段django.db.models.ImageField
附加实际的图像字段,该字段又使用Python Imaging Library。 我可以很好地定义模型,但是当我尝试通过内置管理站点添加图像时,在单击保存时出现以下错误: TypeError: 'ImageFieldFile' object has no attribute '__getitem__'
我不明白为什么我看到了这个错误,因为我从不要求使用getitem '属性,并且我所有其他字段都正常工作-只是ImageField导致TypeError。 有任何想法吗? 我的PIL安装是否可能有问题? 我在Mac上,一开始安装PIL时遇到了一些小困难,但是现在看来工作正常。 谢谢!
实现__getitem__
方法的类允许您在其上使用数组索引。 因此MyClass[4]
(大致)等效于MyClass.__getitem__[4].
确保您没有意外尝试在ImageField / ImageFieldFile上使用数组索引器。
我在这堂课上遇到了类似的问题:
class Photo(models.Model):
image_location = models.ImageField(upload_to='pix/%Y/%m/%d')
caption = models.CharField(max_length=100)
object = Manager()
您看到此错误的原因可能是因为您要返回模型对象(例如:照片对象):
#returning model object(eg: Photo object)
def __unicode__(self):
return self.image_location
代替unicode字符串(例如:/ Path / to / my / pix):
#returning unicode string instead of model object(eg: /Path/to/my/pix)
def __unicode__(self):
return unicode(self.image_location)
这是帮助我的StackOverflow答案的链接: TypeError'x'对象没有属性'__getitem__'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.