Найти - Пользователи
Полная версия: красивый вывод древовидного каталога django
Начало » Django » красивый вывод древовидного каталога django
1
scurramalum
Добрый день
Подскажите пожалуйста какой-нибудь красивый способ вывода древовидной структуры в django.

есть модель:
class 
class Category(models.Model):
    id = models.BinaryField(primary_key=True, null=False, db_column='_IDRRef', max_length=150)
    code = models.CharField(db_column='_Code', max_length=7)
    description = models.CharField(db_column='_Description', max_length=150)
    parentID = models.ForeignKey('self', db_column='_ParentIDRRef')

Здесь все разделы каталога, если они являются главными, то установлено значение parentID 0х00, если они являются вложенными в какой-либо раздел - то в parentID ссылка на другой объект этой же таблицы.

Как делал я:
получал весь каталог, который является главным (со значение 0х00), затем для каждого из них искал в базе дочерний, и для дочернего искал еще дочерний…в итоге получается слишком много запросов в БД.
Метод select_related не работает (хотел получить все связные элементы за 1 раз, видимо не работает по причине значений 0x00 в бд, уже создавал здесь тему по этому поводу).
И вообще в какую структуру лучше преобразовать данные (если это надо сделать), чтобы их проще было вывести в шаблоне (при этом необходимо влиять на то, что выводится, так что способ unordered_list не подойдет).

Огромное спасибо за любую помощь!
GreyZmeem
Попробуйте использовать django-mptt.
Вот тут есть пример как им пользоваться.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB