每个 changelist 最下方都有一行列出总数(total)。假设我们须要把猫和狗的图片数量区分开来。这个功能须要的代码稍微多一些:我们须要重载 changelist 和 html 模板(更多内容参考模板重载)。
这段代码给列表中每个对象都添加了“在站点查看”的链接。在此,我们假定你的模型(Model)已经实现了get_absolute_url()办法。如不雅还没有 – 那如今就去实现 ,这将为你节俭很多时光。你也可能会想将这个片段转移到一个 mixin,或公用的 admin 基类。
Tip #6: 在列表页当场编辑字段
假设我们须要给评论加一个编辑的备注。很天然,我们欲望不须要对每条评论都去打开评论的changeform。要做到这点,我们可以稍微修改一下ModelAdmin:
- class CommentAdmin(admin.ModelAdmin):
- list_display_fields = ('picture', 'author', 'editors_note', )
- list_editable = ('editors_note', )
Tip #7: 根据须要自定义 total 字段
- from django.contrib.admin.views.main import ChangeList
- class PicturesChangeList(admin.ChangeList):
- def get_results(self, request):
- super(PicturesChangeList, self).get_results(request)
- totals = self.result_list.aggregate(
- dogs_count=Sum(Case(When(animal_kind=Picture.DOG, then=1),
- output_field=IntegerField())),
- cats_count=Sum(Case(When(animal_kind=Picture.CAT, then=1),
- output_field=IntegerField())))
- self.totals = totals
- class PictureAdmin(admin.ModelAdmin):
- def get_changelist(self, request):
- return PicturesChangeList
模板的内容: