django管理统计栏/图表。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django管理统计栏/图表。相关的知识,希望对你有一定的参考价值。

如何显示一个非常简单的统计栏/图形寻找一个django包易于实现我喜欢它内部管理员更改页面或模型显示为管理员内联谢谢

答案

您不需要任何包来执行此操作。您可以使用两个<div>和一些CSS样式显示这样的图形:

class StatsAdmin(admin.ModelAdmin):

    list_display = ('name', 'total', 'passed', 'failed', 'pass_fail')

    def pass_fail(self, obj):

        if not obj.total:
            return ('<div style="width: 100px; height: 10px; border:'
                                '1px solid black"></div>')

        percent_passed = int(obj.passed * 100.0 / obj.total)
        return ('<div style="width: 100px; height: 10px; '
                            'border: 1px solid black; background: red">'
                    '<div style="width: %spx; height: 10px; '
                                'background: green"></div>'
                '</div>' % percent_passed)

    pass_fail.allow_tags = True
    pass_fail.short_description = 'Pass / Fail'

另一答案

pass_fail.allow_tags不再适用于django 1.9及更高版本。

所以我使用相同的代码,通过mark_safe方法更改它

from django.utils.safestring import mark_safe
class StatsAdmin(admin.ModelAdmin):

    list_display = ('name', 'total', 'passed', 'failed', 'pass_fail')

    def pass_fail(self, obj):

        if not obj.total:
            return mark_safe('<div style="width: 100px; height: 10px; border:'
                            '1px solid black"></div>')

        percent_passed = int(obj.passed * 100.0 / obj.total)
        return mark_safe('<div style="width: 100px; height: 10px; '
                        'border: 1px solid black; background: red">'
                '<div style="width: %spx; height: 10px; '
                            'background: green"></div>'
            '</div>' % percent_passed)

    pass_fail.short_description = 'Pass / Fail'

以上是关于django管理统计栏/图表。的主要内容,如果未能解决你的问题,请参考以下文章

从片段创建子意图

Django管理图标和图像

操作栏标签片段中的片段?

统计各个分类和标签下的文章数

仅在一个片段中隐藏状态栏并在其他片段中显示

用片段替换时操作栏向下移动