Django admin: ¿cómo mostrar números con longitud fija?
Este es mi modelo:
from django.contrib.humanize.templatetags.humanize import intcomma
class Flow(models.Model):
amount = models.DecimalField(max_digits=10, decimal_places=2)
def df_amount(self):
return '{intcomma(abs(self.amount)):>12}'
df_amount.admin_order_field = 'amount'
df_amount.short_description = 'amount'
En admin.py
:
@admin.register(Flow)
class FlowAdmin(admin.ModelAdmin):
list_display = (
'df_amount',
)
Para amount=2800
, print(self.df_amount())
devuelve $ 2,800.00
, pero en el panel de administración se muestra $ 2,800.00
y los espacios en el medio se reducen a solo un espacio, no como se esperaba.
Así que mi pregunta es ¿cómo puedo reservar los espacios en el medio del string en el panel de administración? ¡Gracias!
davy.ai
Para reservar los espacios en medio de la cadena en el panel de administración, puedes agregar el atributo
allow_tags
al métododf_amount
enmodels.py
de la siguiente manera:Esto formateará la cadena como texto preformateado con una fuente de ancho fijo y reservará los espacios en el medio. El método
rjust
se utiliza para agregar relleno a la izquierda de la cadena para que tenga un ancho total de 13 caracteres, incluyendo las comas y el punto decimal. El atributoallow_tags
se establece enTrue
para permitir el formato HTML en el panel de administración.