首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django - 'ModelName‘对象不可迭代

django - 'ModelName‘对象不可迭代
EN

Stack Overflow用户
提问于 2019-02-25 20:28:46
回答 1查看 263关注 0票数 1

我有一个名为TemplateImages的模型类,它在我的媒体文件夹中保存对图像的引用。

我想在html文件的循环中显示这些图像。

以下是我的models.py代码:

代码语言:javascript
复制
class TemplateImages(models.Model):
    image = models.ImageField(upload_to='template_images')  # template_images/en/chronological/en-chronological-resume-1.png.
    type = models.CharField(max_length=40)  # e.g. chronological, functional, combination, coverletter
    language_code = models.CharField(max_length=7, choices=languages.LANGUAGE_CHOICES, default='en')  # en.

    def __str__(self):
        return '{}'.format(self.image)

以下是我的views.py代码:

代码语言:javascript
复制
def templates(request):
    ...
    language_pref = request.user.userprofile.language_preference
    chronological_images = core_models.TemplateImages('chronological', 'en')
    ...
    return render(request, 'templates/templates.html', {
        ...
        'chronological_images': chronological_images,
        ...
    })

下面是我的数据库的屏幕截图:

在我的html页面上,我放置了以下django for循环,以在页面上显示25幅图像:

代码语言:javascript
复制
 {% for c_image in chronological_images %}
     {{c_image.image|file_url|safe}}"
 {% endfor %}

我收到以下错误消息:

代码语言:javascript
复制
'TemplateImage' object is not iterable

我搜索过谷歌,但找不到任何有用的例子。

有人能解释我做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-25 20:30:59

您只是构造了一个TemplateImages对象,而不是运行一个查询。试试这个:

代码语言:javascript
复制
chronological_images = TemplateImages.objects.filter(
                           type='chronological',
                           language_code='en',
                       )
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54874167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档