ModelAdmin:创建记录列表,每行一个

时间:2014-07-21 10:57:08

标签: python django

在我的项目中,我有按类别分组的项目。我想要一个所有项目的列表,每行一个项目,而不仅仅是一个类别中的项目。我想在这个列表中有多个视图(字段集)。看来我有两个选择:要么作为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。

0 个答案:

没有答案