Форум сайта python.su
Как организовать такую древовидную структуру?
class Section(models.Model):
name = models.CharField(max_length=30, verbose_name = 'Наименование')
owner = models.ForeignKey(Section, verbose_name = 'Владелец')
owner = models.ForeignKey(Section, verbose_name = 'Владелец')
Офлайн
может будет в помощь:
http://code.google.com/p/django-mptt/
http://habrahabr.ru/blogs/django/85670/
Офлайн
Спасибо, заработало:
class Section(models.Model):
name = models.CharField(max_length=30, verbose_name = 'Наименование')
owner = models.ForeignKey('self', verbose_name = 'Владелец', null=True, blank=True)
Офлайн
Хотел прикрутить TreeEditor к данной модели, по инструкции указанной тут
http://spinlock.ch/pub/feincms/html/admin.html#module-feincms.admin.tree_editor
но не понял что надо для моей модели указывать?
# Из примера
from django.db import models
class YourModel(models.Model):
# model field definitions
class Meta:
ordering = ['tree_id', 'lft'] # The TreeEditor needs this ordering definition
# Моя модель
class Section(models.Model):
name = models.CharField(max_length=30, verbose_name = 'Наименование')
owner = models.ForeignKey('self', verbose_name = 'Владелец', null=True, blank=True)
def __unicode__(self):
return self.name
class Meta:
ordering = [?, ?] # The TreeEditor needs this ordering definition
AttributeError at /admin/myapp/section/
'Options' object has no attribute ‘tree_id_attr’
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/myapp/section/
Exception Type: AttributeError
Exception Value:
'Options' object has no attribute ‘tree_id_attr’
Exception Location: C:\Python26\lib\site-packages\feincms-1.0.99-py2.6.egg\feincms\admin\tree_editor.py in _build_tree_structure, line 54
Python Executable: C:\Python26\python.exe
Python Version: 2.6.4
Python Path:
Server time: Сбт, 27 Фев 2010 15:31:50 +0300
Отредактировано (Фев. 27, 2010 14:34:00)
Офлайн
Возник тот же вопрос, уверен есть какое-то готовое решение.
Офлайн
Видимо надо еще зарегистрировать свою модель в mptt:
import mptt
class Section(models.Model):
name = models.CharField(max_length=30, verbose_name = 'Наименование')
owner = models.ForeignKey('self', verbose_name = 'Владелец', null=True, blank=True)
class Meta:
ordering = ['name']
def __unicode__(self):
return self.name
mptt.register(Section, ...)
def register(model, parent_attr='parent', left_attr='lft', right_attr='rght',
tree_id_attr='tree_id', level_attr='level',
tree_manager_attr='tree', order_insertion_by=None)
Exception Value: column myapp_section.lft does not existНафига мне эта колонка не нужна
LINE 1: …myapp_section“ ORDER BY ”myapp_section“.”id“ ASC, ”myapp_sec…
Отредактировано (Фев. 27, 2010 17:45:54)
Офлайн
Некропостинг для тех, кто нагуглит проблему в будущем. Челу всего-то нужно было удалить базу и сделать syncdb.
Офлайн