【问题标题】:django admin statistical bar/graph.django 管理员统计条形图/图表。
【发布时间】:2015-04-09 04:41:09
【问题描述】:

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

【问题讨论】:

    标签: django django-admin django-grappelli


    【解决方案1】:

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

    所以我通过 ma​​rk_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'
    

    【讨论】:

      【解决方案2】:

      您不需要任何软件包来执行此操作。您可以使用两个 &lt;div&gt; 和一些 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'
      

      【讨论】:

      • 谢谢 - 这是完美的。
      猜你喜欢
      • 2021-01-30
      • 2016-04-27
      • 2016-03-10
      • 2013-09-07
      • 2011-03-30
      • 2021-04-30
      • 2016-01-29
      • 2022-12-21
      • 1970-01-01
      相关资源
      最近更新 更多