在django-mptt中,可以通过设置MPTT_ADMIN_LEVEL_INDENT
参数来控制子代的编号固定为父代。MPTT_ADMIN_LEVEL_INDENT
是一个整数,表示每个层级的缩进量。
首先,在你的Django项目的settings.py文件中,找到MPTT_ADMIN_LEVEL_INDENT
参数,并设置一个合适的值,例如:
MPTT_ADMIN_LEVEL_INDENT = 20
然后,在你的模型类中,使用@register
装饰器注册你的模型,并在list_display
中添加indented_title
字段。indented_title
字段是一个自定义的方法,用于生成带有缩进的标题。
from django.contrib import admin
from mptt.admin import MPTTModelAdmin
from .models import YourModel
@admin.register(YourModel)
class YourModelAdmin(MPTTModelAdmin):
list_display = ('indented_title',)
def indented_title(self, obj):
return ' ' * obj.level + str(obj)
indented_title.short_description = 'Title'
indented_title.allow_tags = True
这样,当你在Django admin中查看该模型的列表时,子代的编号就会固定为父代,并且通过缩进的方式展示出来。
关于django-mptt的更多信息和用法,你可以参考腾讯云的相关产品文档:django-mptt。
领取专属 10元无门槛券
手把手带您无忧上云