3

Djangoプロジェクト管理者がtreeadminのドラッグアンドドロップとmpttモデルの両方で動作するようにする方法についてのヘルプを探しています。

すべてが箱から出して問題なく動作しましたが、admin.pyでこれを試したとき:

class ItemInline(TreeAdmin):
    model = MenuItems

class MenuAdmin(admin.ModelAdmin):
    model = Menu
    inlines = (ItemInline, )

admin.site.register(Menu, MenuAdmin)

エラーが発生しました:タイプオブジェクト'ItemInline'には属性'fk_name'がありません。

さて、このfk_nameは一体何で、ItemInLineに追加するにはどうすればよいですか?

これが私のモデルでもあります。何か関係がある場合に備えて、次のようにします。

class Menu(MPTTModel):
        name = models.CharField(max_length = 100)

        def __unicode__(self):
                return self.name

class MenuItems(MPTTModel):
        menu = models.ForeignKey(Menu)
        name = models.CharField(max_length=50, unique=True)
        parent = TreeForeignKey('self', null=True, blank=True, related_name='children')
        target = models.ForeignKey(Pages,null=True, blank=True)

        class MPTTMeta:
                order_insertion_by = ['name']

        def __unicode__(self):
                return self.name
4

1 に答える 1

4

ランダムな管理クラスをインラインにすることはできません。InlineModelAdminそれは実際にクラスから継承する必要があり、それが何TreeAdminであれ明らかにそうではありません。

InlineModelAdminをミックスインとして使用してこれを修正してみることができます-それはうまくいくかもしれません

class ItemInline(TreeAdmin, InlineModelAdmin):
于 2012-09-09T09:17:03.803 に答える