У мене є модель з полями:
PLM = models.FloatField(_("LMP"),blank=True, null=False, default=1)
Чи можливо в інтерфейсі адміністрування відображати "PLM", розмір якого зменшився б, а не як у цьому випадку відображати двадцять цифр ..?
Відповіді:
0 для відповіді № 1Якщо ви тільки це потрібно в list_display
ви можете зробити розрахунок у modeladmin, як зазначено в документи
Наступний фрагмент взято з документів і трохи відрегульований відповідно до вашого сценарію.
class FooAdmin(admin.ModelAdmin):
list_display = ("calculation_plm",)
def calculation_plm(self, obj):
return (obj.T / 1000) * (20 + math.log(obj.tr))
calculated_plm.short_description = "PLM caluculation"
Якщо вам потрібен цей розрахунок частіше, він може бути більше пов'язаний з моделлю. Ви можете легко перемістити його до своєї моделі та list_display
також буде працювати в цьому випадку.
class Foo(models.Model):
PLM = models.FloatField(_("LMP"),blank=True, null=False, default=1)
def calculation_plm(self, obj):
return (obj.T / 1000) * (20 + math.log(obj.tr))
calculated_plm.short_description = "PLM caluculation"
class FooAdmin(admin.ModelAdmin):
list_display = ("calculation_plm",)
Зауважте, що T і tr не визначені, і я просто взяв їх із вашого коментаря вище. Звичайно obj
потрібні ці поля, доступні для належної роботи.