gpt4 book ai didi

django - 'RelatedManager' 对象不是可迭代的 Django

转载 作者:行者123 更新时间:2023-11-28 19:34:04 26 4
gpt4 key购买 nike

嘿,我在 SO 上浏览了一些类似的帖子,但没有找到任何解决我问题的方法。我有以下型号,

from django.db import models

class Areas(models.Model):

name = models.CharField(max_length = 120)
order_in_sidebar_network = models.IntegerField(blank=True, null=True)
order_in_section_network = models.IntegerField(blank=True, null=True)


def __unicode__ (self):
return self.area_name

class Meta:
verbose_name_plural = "Areas"
verbose_name = "Area"

class Countries(models.Model):
name = models.CharField(max_length = 120, help_text = "The name of the country")
area = models.ForeignKey(Areas, verbose_name = 'Area')

def __unicode__ (self):
return self.name

class Meta:
verbose_name_plural = "Countries"
verbose_name = "Country"
ordering = ['name']



class Offices(models.Model):
country = models.ForeignKey(Countries, verbose_name = 'Country')
name = models.CharField(max_length = 255, help_text = "The name of this office, IE London")
main_office = models.BooleanField(default= False, help_text = "Is this office a key location?", verbose_name = "Key Location")
address_1 = models.CharField(max_length = 255, null = True, blank = True)
address_2 = models.CharField(max_length = 255, null = True, blank = True)
address_3 = models.CharField(max_length = 255, null = True, blank = True)
city = models.CharField(max_length = 255, null = True, blank = True)
postcode = models.CharField(max_length = 20)
tel = models.CharField(max_length = 30, null= True, blank = True, help_text = "Optional telephone contact number")
mobile = models.CharField(max_length = 30, null= True, blank = True, help_text = "Optional mobile contact number")
fax = models.CharField(max_length = 30, null= True, blank = True, help_text = "Optional fax contact number")
data_1 = models.CharField(max_length = 255, null = True, blank = True, help_text = "Optional additional data", verbose_name = "Additional information")
data_2 = models.CharField(max_length = 255, null = True, blank = True, help_text = "Optional additional data", verbose_name = "Additional information")

class Meta:
verbose_name_plural = "Offices"
verbose_name = "Office"
ordering = ['name']

def __unicode__(self):
return self.name

class OfficeMembers(models.Model):
name = models.CharField(max_length = 60, help_text = "Please tell us this person name")
title = models.CharField(max_length = 100, help_text = "The person's title, IE Managing Director")
email = models.EmailField(max_length = 255, null = True, blank = True, help_text = "Optional email address for this person")
email2 = models.EmailField(max_length = 255, null = True, blank = True, help_text = "Optional second email address for this person")
phone = models.CharField(max_length = 30, null = True, blank = True, help_text = "Optional contact number for this person")
mobile = models.CharField(max_length = 30, null = True, blank = True, help_text = "Optional mobile contact number for this person")
office = models.ForeignKey(Offices, null = True)
class Meta:
verbose_name_plural = "Office Memebers"
verbose_name = "Office memebr"
ordering = ['name']

def __unicode__(self):
return self.name

我设置了以下 View

def index(request):

cache_key = "world_areas"
cache_time = 60

world_areas_cache = cache.get(cache_key)

#if no cache is set, grab the objects, and set the cache

logger.debug(world_areas)
if not world_areas_cache:
logger.info('No cache found grabbing objects')
world_areas = Areas.objects.select_related().all()
#cache.set(cache_key, world_areas, cache_time)
logger.debug(world_areas)
else:
logger.info("Getting from cache")
world_areas = world_areas_cache

return render_to_response('network/index.html', {'world_areas':world_areas}, context_instance=RequestContext(request))

尝试像这样遍历 world_areas 对象

{% for area in world_areas %}

产生模板语法错误

'RelatedManager' object is not iterable

有人知道为什么会这样吗?似乎真的无法绕过这个! strangley 这在 shell 中对我有用:我是否遗漏了一些明显的东西???

非常感谢任何能够提供帮助的人!

最佳答案

Call all() 从管理器中检索元素。

{% for area in world_areas.all %}

关于django - 'RelatedManager' 对象不是可迭代的 Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6704749/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com