繁体   English   中英

Django-mptt管理员类别

[英]Django-mptt admin categories

在我的Django项目中,我有一个模型:

class Category(MPTTModel):
name = models.CharField(default='',
                        max_length=50,
                        verbose_name='Название')
slug = models.SlugField(default='')
parent = TreeForeignKey('self',
                        related_name='children',
                        null=True,
                        blank=True,
                        verbose_name='Родительская категория'
                        )
order = models.PositiveSmallIntegerField(blank=False,
                                         null=False,
                                         default=0,
                                         verbose_name='Порядок')
is_active = models.BooleanField(default=True,
                                db_index=True,
                                verbose_name='Отображать на сайте')

class Meta:
    verbose_name = 'Категория'
    verbose_name_plural = 'категории'

class MPTTMeta:
    order_insertion_by = ['order']

如果我先添加主要类别(一,二,三),然后添加子类别(四合一,五合二,六合三),我希望在管理面板中看到它,如下所示:

-one
--four
-two
--five
-three
--six

但是我有以下命令:

-one
-two
-three
--four
--five
--six

我究竟做错了什么?

您需要在您的admin.py中使用MPTTModelAdmin注册Category模型

from django.contrib import admin
from mptt.admin import MPTTModelAdmin
from .models import Category

admin.site.register(Category, MPTTModelAdmin)

参考: https : //django-mptt.github.io/django-mptt/admin.html

感谢名单! 似乎Suit.admin的SortableModelAdmin中断了订单。

我的admin.py是:

from suit.admin import SortableModelAdmin
from mptt.admin import MPTTModelAdmin
from .models import Category, Good


class CategoryAdmin(MPTTModelAdmin, SortableModelAdmin):
    mptt_level_indent = 20
    list_display = ('name', 'slug', 'is_active', 'order')
    list_editable = ('is_active',)
    prepopulated_fields = {"slug": ("name",)}
    # Specify name of sortable property
    sortable = 'order'

admin.site.register(Category, CategoryAdmin)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM