我正在使用Python(3.7)和Django(2.1)开发一个项目,其中有一个模型调用Category
,文件名为parent
,类型为ForeignKey
,本身为self
。它在Django管理员中显示为下拉菜单,因为会有数百个PARENT类别,因此在这种情况下我们不能使用下拉菜单,我想显示一个带有搜索选项的大表以选择一个类别作为父母。
这是我的Category
模型:
来自models.py
:
class Category(models.Model):
name = models.CharField(max_length=200)
slug = models.SlugField()
description = models.TextField(max_length=1000, default='')
parent = models.ForeignKey('self',
blank=True,
null=True,
related_name='children',
on_delete=models.CASCADE)
class Meta:
unique_together = ('slug', 'parent',)
verbose_name_plural = "categories"
def __str__(self):
full_path = [self.name]
k = self.parent
while k is not None:
full_path.append(k.name)
k = k.parent
return ' -> '.join(full_path[::-1])
并且来自admin.py
:
@admin.register(Category)
class CatAdmin(admin.ModelAdmin):
filter = ('parent',)
class Media:
css = {
'all': ('assets/css/custom.css',),
}
那么,如何在Django管理员中实现所需的方案?
谢谢!