У меня есть следующая модель на Django 1.6.5Django делает рекурсивные вызовы на отношения
class Location(models.Model):
parent = models.ForeignKey('Location', blank=True, null=True)
name = models.CharField(max_length=50)
class Meta:
db_table = 'locations'
ordering = ('parent__name', 'name')
def __unicode__(self,):
if self.parent!= None:
return self.name + " (" + self.parent.name + ")"
else:
return self.name
И я перечисляю эти места в раскрывающемся списке, поэтому я хочу, чтобы показать имя + (parent.name если доступно)
Любая идея hwo сделать это без необходимости делать тысячи звонков?
Вы, наверное, хотите посмотреть на что-то вроде [Джанго-mptt] (HTTP: //django-mptt.github.io/django-mptt/), который позволяет вам делать эти запросы очень эффективно. –
Давай, должен другой способ использовать стороннюю библиотеку. Это самая распространенная вещь в мире. – Fabiot
Невозможно сделать это, если вы придерживаетесь иерархического хранения данных дерева в sql. Вы должны посмотреть в Nested Sets http://en.wikipedia.org/wiki/Nested_set_model моделей Materialized Path. django-mptt делает оба, насколько я помню – teferi