Форум сайта python.su
С ноября не могу сделать отображение в админке в виде:
Категория1
::категория2
::::товар1
::::товар2
Категория3
::товар3
Перепробовал огромное множество разновидностей mptt. feinCMS у меня вообще почему-то не идёт, ругается при добавляении в INSTALLED_APPS. Особо в тему не вникал.
Остановился на django_mptt_admin. Он позволяет использовать drag&drop. Стандартный MPTTModelAdmin дают какой-то совсем убогий отступ:
До этого работал год с самописным вэб-движком на питоне. Там это дерево я бы за 20 минут сделал объединённый sql-запрос и нарисовал всю архитектуру с отступами, с d&d помучался бы пару дней на qjuery, но всё равно бы сделал. Здесь ковыряюсь уже 2й месяц и не продвинулся ни на шаг. Меня предупреждали о головняке, но не думал что я нарвусь на него прямо с ходу. Обычный интернет-магазин и подобная структура в виде иерархии дерева нужна каждому. Иначе попробую, разберись в 10 тыс наименованиях.
models.py
import mptt from django.db import models from mptt.models import MPTTModel, TreeForeignKey class Folder(MPTTModel): name = models.CharField(max_length=255, default='/', verbose_name=u'Имя') parent = TreeForeignKey('self', null=True, blank=True,related_name='child') def __unicode__(self): return self.name class MPTTMeta: parent_attr = 'parent' class Product(models.Model): parent = models.ForeignKey(Folder, blank=True, null = True, related_name='child_product') name = models.CharField(max_length=255, db_index=True, verbose_name=u'Имя') price = models.CharField(max_length=8, db_index=True, verbose_name=u'Цена') def __unicode__(self): return self.name mptt.register(Folder) mptt.register(Product)
from offers.models import Product, Folder from django_mptt_admin.admin import DjangoMpttAdmin from django.contrib import admin admin.site.register(Product, DjangoMpttAdmin) admin.site.register(Folder, DjangoMpttAdmin)
Отредактировано Dariloff (Янв. 3, 2014 15:06:20)
Офлайн