2017-04-26 77 views
0

我有一個名爲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]的教程

回答

0

我真的很愚蠢的這一個,答案是非常簡單的,基本上,我不得不編輯__str__方法...

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

只是一個建議:更好(總是)使用'self.sub_category不是None'。 –

+0

'!='和'不是'之間的區別究竟是什麼。它只是'!='是基於值而不是基於Type? – Zer0

+0

這是丹巴德看到的區別:) [優秀視頻](https://www.youtube.com/watch?v=CZ8bZPqtwU0)。簡而言之,就是你所說的,輸入而不是價值。 –