![](/img/trans.png)
[英]Why does ModelName.objects.using('db').filter(…) in django with mongodb return a not iterable error?
[英]django - 'ModelName' object is not iterable
我有一個名為TemplateImages
的模型類,其中包含對媒體文件夾中圖像的引用。
我想在html文件中循環顯示圖像。
這是我的models.py代碼:
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代碼:
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張圖像:
{% for c_image in chronological_images %}
{{c_image.image|file_url|safe}}"
{% endfor %}
我收到以下錯誤消息:
'TemplateImage' object is not iterable
我已經搜索過google,但是找不到任何有用的示例。
有人可以解釋我做錯了什么嗎?
您只是構造了TemplateImages
對象,而不運行查詢。 嘗試這個:
chronological_images = TemplateImages.objects.filter(
type='chronological',
language_code='en',
)
您只構造了一個新的 TemplateImages
對象,但沒有將其保存到數據庫中,當然,單個對象是不可迭代的。 如果要執行查詢,則應使用TemplateImages.objects.filter()
,例如:
def templates(request):
# ...
language_pref = request.user.userprofile.language_preference
chronological_images = core_models.TemplateImages.objects.filter( type='chronological', language_code='en' )
# ...
return render(request, 'templates/templates.html', {
# ...
'chronological_images': chronological_images,
# ...
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.