向Django admin hom添加一个计数器

2024-03-29 10:41:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否可以添加一个计数器到Django管理应用程序主页

示例:

enter image description here

我可以在中创建@property吗模型.py或者管理员py为了这个?在

谢谢


Tags: djangopy模型示例管理员计数器property主页
3条回答

我认为你不能用Meta来做,因为它需要一个动态值。另外,修改Meta将使您使用模型的所有地方发生变化,而不仅仅是管理员。我认为最好的办法是使用类似于https://stackoverflow.com/a/6312798/1433029或使用django管理工具https://bitbucket.org/izi/django-admin-tools/

可以专门化字符串类型以添加所需的动态行为。在

下面是一个完整的例子:

from django.db import models

class VerboseName(str):
    def __init__(self, func):
        self.func = func

    def decode(self, encoding, erros):
        return self.func().decode(encoding, erros)

class UsedCoupons(models.Model):
    name = models.CharField(max_length=10)

    class Meta:
        verbose_name_plural = VerboseName(lambda: u"Used Coupons (%d)" % UsedCoupons.objects.all().count())

尝试修改Model._meta.verbose_name

在你的管理员py文件:

from app.models import CouponModel

CouponModel._meta.verbose_name_plural = "Used Coupons ( %s ) " % CouponModel.objects.all().count()

我测试过了,它很管用,不知道它有多聪明。在

相关问题 更多 >