Admin Add Page中的递归模型

时间:2017-04-26 11:58:50

标签: django recursion django-models django-admin

我有一个名为Category的模型,它是递归的。模型如下:

from django.db import models

class Category(models.Model):
    name = models.CharField(max_length=255, blank=False)
    description = models.CharField(max_length=255, blank=False)
    sub_category = models.ForeignKey('self', blank=True, null=True, related_name='subcategory')

    def __str__(self):
        return self.name

category的admin.py是:

from django.contrib import admin
from category.models import Category
from django import forms

class CategoryAdmin(admin.ModelAdmin):
    list_display = ['id', "name", "sub_category", 'description']
    list_filter = ["name"]
    search_fields = ["name"]
    ordering = ('sub_category',)

    class Meta:
        model = Category

admin.site.register(Category, CategoryAdmin)

当我想向数据库中添加更多类别时,我会转到管理部分然后执行此操作,假设我需要区分哪个类别是其父类别的一部分我将如何进行此操作?现在,我看到: enter image description here

这不是很有帮助,有没有办法让子类别旁边的父类别?喜欢这种格式:

  • [Java]教程
  • [Python]教程

1 个答案:

答案 0 :(得分:0)

我真的很愚蠢,答案非常简单,基本上,我只需编辑模型中的__str__方法......

def __str__(self):
    if self.sub_category != None:
        return '[{0}] {1}'.format(self.sub_category.name, self.name)
    return self.name