Django 管理アプリのホームページにカウンターを追加できるかどうか知りたいのですが、
例:
このために、models.py または admin.py に @property を作成できますか?
ありがとう
変更してみてくださいModel._meta.verbose_name
admin.pyファイル:
from app.models import CouponModel
CouponModel._meta.verbose_name_plural = "Used Coupons ( %s ) " % CouponModel.objects.all().count()
私はこれをテストしました、そしてそれはうまくいきます、それがどれほど賢いかわかりません。
文字列型を特殊化して、必要な動的動作を追加できます。
完全な例を次に示します。
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())
動的な値が必要なため、Metaでは実行できないと思います。また、メタを変更すると、管理者だけでなく、モデルを使用するすべての場所で変更が行われます。https://stackoverflow.com/a/6312798/1433029のようなものを使用するか、django管理ツールhttps://bitbucket.org/izi/django-admin-tools/を使用するのが最善のアイデアだと思います