Я работаю над проектом, использующим Python (3.7) и Django (2.1), в котором у меня есть вызов модели Category
, который имеет parent
типа ForeignKey
для себя как self
. Он отображается в админке Django в виде раскрывающегося списка, поскольку в нем будут сотни категорий РОДИТЕЛЕЙ, поэтому мы не можем использовать раскрывающийся список в такой ситуации, поэтому я хочу отобразить большую таблицу с параметром поиска, чтобы выбрать категорию как родитель.
Вот моя 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?
Заранее спасибо!