繁体   English   中英

django-mptt在标准ModelAdmin中嵌套了下拉菜单?

[英]django-mptt nested dropdown in standard ModelAdmin?

我使用的Django MPTTCategory模式,这是一个外键,一个Project模型:

from django.db import models
from mptt.models import MPTTModel, TreeForeignKey

class Category(MPTTModel):
    name = models.CharField(max_length=255)
    parent = TreeForeignKeyY('self',
            null=True, 
            blank=True, 
            related_name='children'
            )

class Project(models.Model):
    name = models.CharField(max_length=255)
    category = models.ForeignKey('Category')

使用MPTTModelAdmin设置Category admin很容易,并带有一个漂亮的嵌套下拉列表来选择parent类别:

from django.contrib import admin
from mptt.admin import MPTTModelAdmin
from myapp.models import Category, Project

admin.site.register(Category, MPTTModelAdmin)

现在我想在我的Project admin中包含一个漂亮的嵌套Category下拉列表,但是标准admin.ModelAdmin不包含此功能,并且子类化MPTTModelAdmin似乎不起作用:

项目没有名为“父”的字段

是否可以模仿非MPTT管理工具中的嵌套下拉菜单?

您仍然可以使用TreeForeignKey在非MPTTModel ,假设链接的模型是一个MPTTModel ,即:

class Project(models.Model):
    name = models.CharField(max_length=255)
    category = TreeForeignKey('Category')

或者,您可以将字段mptt.forms.TreeNodeChoiceField mptt.forms.TreeNodeMultipleChoiceFieldmptt.forms.TreeNodeChoiceFieldmptt.forms.TreeNodeMultipleChoiceField的实例。

暂无
暂无

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

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