[英]django-mptt nested dropdown in standard ModelAdmin?
我使用的Django MPTT的Category
模式,这是一个外键,一个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.TreeNodeMultipleChoiceField
上mptt.forms.TreeNodeChoiceField
或mptt.forms.TreeNodeMultipleChoiceField
的实例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.