繁体   English   中英

Django管理员如何以百分比显示进度条

[英]Django admin how to show a progress bar in percentage

在Django内置管理站点中,如何在“更改列表”页面和“更改表单”页面中将进度栏显示为字段?

例如:

  1. 在模型中创建方法percentage_paid ,以计算结果并呈现HTML元素。
# models.py

class SomeModel(models.Model):
    ....
    def percentage_paid(self):
        if self.paid_amount and self.final_price:
            percentage = round((self.paid_amount / self.final_price * 100), 2)
        else:
            percentage = 0
        return format_html(
            '''
            <progress value="{0}" max="100"></progress>
            <span style="font-weight:bold">{0}%</span>
            ''',
            percentage
        )
  1. 将此方法字段'percentage_paid'添加到readonly_filds
  2. 同时,如果要在“更改列表”页面中显示,请将其添加到list_display如果要在“更改表单”页面中显示,则将其添加到fields 我将其添加到fieldsets以自定义我的更改表单。
# admin.py

class CaseAdmin(CommonInfoAdmin):
    fieldsets = CommonInfoAdmin.fieldsets + (
        ('Sales Summary', {
            'fields': (
                ....
                ('final_price', 'paid_amount', 'balance', 'percentage_paid'),
                ....
            )
        }),
    )
    readonly_fields = [
        ....
        'percentage_paid',
    ]
    list_display = (
        ....
        'percentage_paid'
    )

结果:

  • 更改列表

更改列表

  • 变更表格

变更表格

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM