DjangoTypeError:
iterable değildir 'RelatedManager' nesne sonraki modelleri var:
class Group(models.Model):
name = models.CharField(max_length=100)
parent_group = models.ManyToManyField("self", blank=True)
def __unicode__(self):
return self.name
class Block(models.Model):
name = models.CharField(max_length=100)
app = models.CharField(max_length=100)
group = models.ForeignKey(Group)
def __unicode__(self):
return self.name
demek, b1g1 grup vardır bloke ederler. Adına göre tüm bloklarını g1 gruptan almak istiyorum. Bana iterable değildir RelatedManager nesneyi döndürür
def get_blocks(group):
def get_needed_blocks(group):
for block in group.block_set:
blocks.append(block)
if group.parent_group is not None:
get_needed_blocks(group.parent_group)
blocks = []
get_needed_blocks(group)
return blocks
ama b1.group.block_set: Ben önümüzdeki özyinelemeli fonksiyon yazdım.
Ne yapmalı? Sorun nedir?
RelatedManager'ın neden yinelenebilir hale gelmediğini bilen var mı? Bu şekilde olmasını beklerdim ... – stalepretzel
Bu yorum biraz geç oldu, ancak mantıksal olarak, db'ye getirmeden önce sorguyu kısıtlamak için yönetici üzerinde filtreleme yöntemlerini kullanabilmeniz. – ovangle
@stalepretzel, çünkü tam olarak standart bir django yöneticisi olarak çalışıyor. Model.objects'i çağırmaz ve tekrarlar. Model.objects.all() öğesini çağırın ve sonra yineleyin. Django yöneticisi =/= Django queryset. – Saturnix