在我的项目中,我有按类别分组的项目。我想要一个所有项目的列表,每行一个项目,而不仅仅是一个类别中的项目。我想在这个列表中有多个视图(字段集)。看来我有两个选择:要么作为TabularInline(第一个代码块),要么使用list_display在顶层做。
前者的问题是我希望一次显示所有类别。后者的问题似乎是在那个层面上无法使用字段集。
我的admin.py包含以下内容:
class ItemInline(admin.TabularInline):
model = Item
extra = 5
readonly_fields=('myPrice',)
fields=('name', 'vendor', 'buyer', 'numPackages', 'pkgQuantity', 'pkgPrice', 'myPrice', 'listPrice')
class CategoryAdmin(admin.ModelAdmin):
fieldsets = [
('CatInfo', {'fields': ['name'], 'classes': ['collapse']})
]
inlines = [ItemInline]
admin.site.register(Category, CategoryAdmin)
只要我喜欢ItemInline(并计划用一些字段集替换字段),它就能正常工作。我的问题是,通过这个,我会看到一个类别列表,并且必须单击一个类别,并且只能编辑该类别中的项目。我想要的是提供所有项目的列表(按类别分组)并直接编辑它们。
我试过了:
class ItemAdmin(admin.ModelAdmin):
ordering=('category',)
# readonly_fields=('myPrice',)
list_display_links=('category',)
list_display=('category', 'name', 'vendor', 'buyer', 'numPackages', 'pkgQuantity', 'pkgPrice', 'myPrice', 'listPrice')
list_editable=('name', 'vendor', 'buyer', 'numPackages', 'pkgQuantity', 'pkgPrice', 'listPrice')
admin.site.register(Item, ItemAdmin)
这作为布局,接近我想要的。但我希望能够将字段集用于不同的集合,而不是list_display。