Mam model z polami:
PLM = models.FloatField(_("LMP"),blank=True, null=False, default=1)
Czy w interfejsie administracyjnym można wyświetlić „PLM”, którego rozmiar zostałby zmniejszony, a nie jak w niniejszej sprawie, aby wyświetlić dwadzieścia cyfr…?
Odpowiedzi:
0 dla odpowiedzi № 1Jeśli ty tylko potrzebuję tego w list_display
możesz wykonać obliczenia w modeluadmin, jak określono w doktorzy
Poniższy fragment pochodzi z dokumentów i został lekko dostosowany do Twojego scenariusza.
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"
Jeśli potrzebujesz tego obliczenia częściej, może on być bardziej związany z modelem. Możesz łatwo przenieść go do swojego modelu i list_display
będzie również działać w tym przypadku.
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",)
Zauważ, że T i tr nie są zdefiniowane i właśnie wziąłem je z twojego komentarza powyżej. Oczywiście obj
potrzebuje tych pól dostępnych do poprawnego działania.