1

優れたソート可能なフィールド機能のために、Grappelli admin を使用しています。ただし、mpttで動作させることができないようです。これが私のコードです:

class Category(models.Model):
        name = models.CharField(max_length = 100)

        def __unicode__(self):
                return self.name


class Item(models.Model):
        category = models.ForeignKey(category)
        title = models.CharField(max_length=50)
        parent = models.ForeignKey('self',null=True, blank=True,related_name='subitems')
        position = models.PositiveSmallIntegerField("Position")

        class Meta:
                ordering = ['position']

        def __unicode__(self):
                return self.title

これは私の管理者です:

from content.models import *
from django.contrib import admin

class ItemInline(admin.TabularInline):
    model = Item
    fields = ('title', 'parent', 'position')
    sortable_field_name = "position"

class CategoryAdmin(admin.ModelAdmin):
    model = Category
    inlines = (ItemInline, )

admin.site.register(Category, CategoryAdmin)

そして最後に、これが私のテンプレートです:

<ul>
    {% recursetree nodes %}
        <li>
            {{ node.title }}
            {% if not node.is_leaf_node %}
                <ul class="children">
                    {{ children }}
                </ul>
            {% endif %}
        </li>
    {% endrecursetree %}
</ul>

問題は、class Item(models.Model):モデルで管理者機能を使用すると、ソート可能であり、すべて正常に機能しますが、テンプレートが失敗して、

タイプ オブジェクト 'MenuItems' には属性 '_mptt_meta' がありません

そして、私がすべてを使用すると、class MenuItems(MPTTModel):すべてが逆になります。私のテンプレートは正常に動作しますが、管理画面でフィールドを並べ替えることができません (「位置」番号は変更されますが、他には何もありません。アイテムは元の順序でリストされます。

それで、これら2つのことを一緒に機能させることが可能かどうか、または別の方法を見つける必要があるかどうかを誰かが知っているかどうか疑問に思っていました...

ありがとう!

4

0 に答える 0