Иерархические данные в админке в Django

в проекте Django у меня есть иерархическая модель с использованием MPTT, определенная так в models.py:

class Structure(MPTTModel):
    name = models.CharField(max_length=200, unique=True)
    parent = TreeForeignKey('self', null=True, blank=True, related_name='children')
    [...]

Я использую FeinCMS, чтобы показать эти иерархические данные на страницах администратора. Я делаю это, как это admin.py:

class StructureAdmin(tree_editor.TreeEditor):
    search_fields = ('name',)

[...]

admin.site.register(Structure, StructureAdmin)

на странице модели администратора он работает отлично, и иерархия может быть видна: enter image description here

Он также работает при редактировании или добавлении:

enter image description here

у меня есть другая модель в models.py:

class Track(models.Model):
    initialStructure = models.ForeignKey(Structure , related_name='track_initialStructure')
    finalStructure = models.ForeignKey(Structure, related_name='track_finalStructure')
    [...]

однако при добавлении нового элемента такого рода иерархию нельзя увидеть:

enter image description here

Я пытался использовать tree_editor.TreeEditor для представления администратора трека, но он дает много ошибок, потому что трек не является иерархическим,но некоторые из его ForeignKey. Как я могу показать иерархию при редактировании элемента дорожки модели?

спасибо.

1 ответов


попробуйте изменить:

finalStructure = models.ForeignKey(Structure, related_name='track_finalStructure')

в:

finalStructure = TreeForeignKey(Structure, related_name='track_finalStructure')

конечно, после импорта TreeForeignKey С в Django-mptt:

from mptt.fields import TreeForeignKey