Django图像场引发TypeError
我正在写一个简单的网站使用Django来显示一些图片。在我的模型,我定义的图像模型和分类模型,让我来分类每个图像:Django图像场引发TypeError
class Image(models.Model): title = models.CharField(max_length=200)
image = models.ImageField(upload_to='images')
tags = models.ManyToManyField(Category)
我想使用附加实际的像场建在外地的ImageField Django的django.db.models.ImageField
这使用Python成像库。我可以很好地定义我的模型,但是当我尝试通过内置的管理站点添加图像时,在点击保存时出现以下错误: TypeError: 'ImageFieldFile' object has no attribute '__getitem__'
我不明白为什么我看到这个错误,因为我从来没有要求 getitem'属性,我所有的其他领域工作正常 - 它只是导致TypeError的ImageField。有任何想法吗?这可能是我的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字符串(例如:/路径/要/我的/像素):
#returning unicode string instead of model object(eg: /Path/to/my/pix) def __unicode__(self):
return unicode(self.image_location)
这个链接到StackOverflow的答案,帮助米e:TypeError 'x' object has no attribute '__getitem__'
以上是 Django图像场引发TypeError 的全部内容, 来源链接: utcz.com/qa/262756.html