1

我正在尝试输出属于我的应用程序中每条记录的图像列表,如下所示:

pri_photo = vehicle.images.all()[:1]
sec_photos = vehicle.images.all()[1:]

这第一部分没问题。我遇到问题的部分是当我尝试时

pri_photo.original_image.url
sec_photos.original_image.url

上面两行代码给了我一个'QuerySet' object has no attribute 'original_image'. 可能是什么问题?

我还希望将照片sec_photos输出为 image1, image2,... 直到最后一张

4

1 回答 1

1

[:1] 只是限制查询集返回的记录数,仍然是查询集结果,而不是单个对象。

要获得单个对象,您应该使用

[0]

或者

[0:1].get()

但这并不安全,因为如果没有对象与查询匹配,它将引发错误。要正确执行此操作,请使用 filter(),如果结果存在则 get(),或者

try:
    #get()
except modelname.DoesNotExist:
    # do shomething else

另外,如果您正在寻找最新的对象,也许您可​​以使用http://www.djangoproject.com/documentation/models/get_latest/

于 2010-01-18T06:23:09.617 回答