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

回到顶部