MPTT-类别树子类别未显示类别

时间:2021-03-25 16:06:50

标签: django django-models django-mptt

我试图在 Django 环境中使用 mptt 库创建类别和子类别。 mptt lib 安装成功。在 model.py(file) 中创建的 Category(name) 模型。在 Admin.py mptt 中。 MPTT- 类别树子类别未显示在 admin.py 面板中使用以下代码创建的任何类别 MPTTAdmin --> 它不显示任何 list_display 以及类别和子类别值,如下面的附图所示。

[管理员中的类别][1]

它显示了 10 个类别而不是子类别 [1]:https://i.stack.imgur.com/2GtfA.png

# Register your models here.
from product.models import Category,Product,Images
from mptt.admin import DraggableMPTTAdmin



class CategoryAdmin(admin.ModelAdmin):
    list_display = ['title','parent', 'status']
    list_filter = ['status']
    #mptt 

class CategoryAdmin2(DraggableMPTTAdmin):
    mptt_indent_field = "title"
    list_display = ('tree_actions', 'indented_title',
                    'related_products_count', 'related_products_cumulative_count')
    list_display_links = ('indented_title',)

    def get_queryset(self, request):
        qs = super().get_queryset(request)

        # Add cumulative product count
        qs = Category.objects.add_related_count(
                qs,
                Product,
                'category',
                'products_cumulative_count',
                cumulative=True)

        # Add non cumulative product count
        qs = Category.objects.add_related_count(qs,
                 Product,
                 'category',
                 'products_count',
                 cumulative=False)
        return qs

    def related_products_count(self, instance):
        return instance.products_count
    related_products_count.short_description = 'Related products (for this specific category)'

    def related_products_cumulative_count(self, instance):
        return instance.products_cumulative_count
    related_products_cumulative_count.short_description = 'Related products (in tree)'


#product  pictures
class ProductImageInline(admin.TabularInline):
    model = Images
    extra = 5
    #5 similar pictures
    

class ProductAdmin(admin.ModelAdmin):
    list_display = ['title','category', 'status']
    list_filter = ['category']
   # readonly_fields = ('image_tag',)
    inlines = [ProductImageInline]

admin.site.register(Category,CategoryAdmin2)
admin.site.register(Product,ProductAdmin)
admin.site.register(Images)

models.py 文件

class Category(MPTTModel):

    STATUS = (
        ('True', 'True'),
        ('False', 'False'),
    )
    #parent = TreeForeignKey('self',blank=True, null=True ,related_name='children', on_delete=models.CASCADE)
    parent = TreeForeignKey('self',blank=True, null=True ,related_name='children', on_delete=models.CASCADE)
    title = models.CharField(max_length=50)
    keywords = models.CharField(max_length=255)
    description = models.TextField(max_length=255)
    image=models.ImageField(blank=True,upload_to='images/')
    status=models.CharField(max_length=10, choices=STATUS)
    slug = models.SlugField(null=False, unique=True)
    create_at=models.DateTimeField(auto_now_add=True)
    update_at=models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.title
    class MPTTMeta:
        order_insertion_by = ['title']

0 个答案:

没有答案
相关问题