Django - Grappelli,mptt和排序字段的问题

时间:2012-09-19 13:13:19

标签: django django-mptt mptt django-grappelli

我正在使用Grappelli管理员,因为它具有很强的可排序字段功能。但是,我似乎无法让它与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):时,一切都相反;我的模板工作正常,但我无法在我的管理员中订购字段(“位置”号码更改,但没有别的,它仍然按原始顺序列出项目。

所以,我想知道是否有人知道是否有可能让这两件事情一起工作,或者我只是需要尝试寻找其他方式......

谢谢!

0 个答案:

没有答案