Всем привет.
Есть у меня такая модель:
class ObjectType(models.Model):
parent = models.ForeignKey("self", related_name='parent_type', null=True)
name = models.CharField(max_length=200)
key = models.CharField(max_length=100)
options = models.CharField(max_length=2000, blank=True)
def getParentsList(self, parentsList=list()):
parentsList.append(dict(id=self.id, name=self.name))
if self.parent is not None:
parentsList = self.parent.getParentsList(parentsList)
return parentsList
Метод getParentsList по идее должен строить список родителей элемента к корню, но роботоспособность еще не проверил, т.к. столкнулся с чем-то загадочным и таинственным. Суть в чем. Вот view в котором я вызываю этот метод (пока что просто для корня):
@render_to('objectTypeView.html')
def objectTypeView(request):
objectType = get_object_or_404(ObjectType, parent__id=None)
print objectType.getParentsList()
return {}
Теперь я тыкаю F5 и получаю:
[{'name': u'root', 'id': 1}]
[{'name': u'root', 'id': 1}, {'name': u'root', 'id': 1}]
[{'name': u'root', 'id': 1}, {'name': u'root', 'id': 1}, {'name': u'root', 'id': 1}]
Соответсвенно ткнул 3 раза подряд. Теперь вопрос, как? Где он сохраняет этот список и почему не очищает параметром по умолчанию? И вообще как это можно решить?
P.s. кстати, даже если явно ему передавать пустой список - магия всеравно остается.