在Django Admin中显示作为表归档的ForeignKey

时间:2019-01-10 06:08:48

标签: python django django-models django-admin django-2.0

我正在使用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管理员中实现所需的方案?

谢谢!

0 个答案:

没有答案