【问题标题】:django align right cannot aligndjango align right 无法对齐
【发布时间】:2020-06-07 08:21:00
【问题描述】:

我正在寻找最简单的方法来对齐右 django 十进制字段。 有人可以指出正确的方法吗? 我找到了不同的帖子,但它仍然显示为左对齐。 我是否必须覆盖管理员,或者我直接在管理员中错过了一些简单的功能。

我想让 3 列(ore_dovute、totale、ore_eccedenti)右对齐,并根据我的需要使用正确的格式。

class TotaliManager(models.Model):
    utente_id = models.IntegerField(max_length=11,null=True)
    ore_dovute = models.DecimalField('ore dovute',max_digits=5,decimal_places=2,null=True)
    totale = models.DecimalField('ore effettuate',max_digits=5,decimal_places=2,null=True)
    ore_eccedenti = models.DecimalField('ore eccedenti',max_digits=5,decimal_places=2,null=True)


    class Meta:
        verbose_name_plural = "Totali per anno / mese"

非常感谢

【问题讨论】:

  • 你说的是管理员列表显示吗?
  • 是的!这是关于列表显示而不是输入。

标签: django alignment decimal


【解决方案1】:

如果您在谈论管理表单,则需要覆盖小部件。

Widget.attrs 允许您设置自定义 HTML 属性以在呈现时添加到表单字段。您可以使用 ModelAdmin.formfield_overrides 覆盖管理员中的表单字段小部件。

admin.py

from django.contrib import admin
from django.db import models
from django.forms.widgets import TextInput

from myapp.models import TotaliManager

class TotaliManagerAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.DecimalField: {'widget': TextInput(attrs={'class': 'text-right'}),
    }

admin.site.register(TotaliManager, TotaliManagerAdmin)

在这种情况下,它将类text-right 添加到输入字段。如果你使用 bootstrap,它是内置的,否则只需添加 css:

.text-right {
    text-align: right;
}

【讨论】:

    【解决方案2】:

    为了更简单,你可以像下面这样将css样式添加到attrs中。

    formfield_overrides = {
        models.DecimalField: {
            'widget': forms.TextInput(attrs={'style': 'text-align:right;', }),
        },
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-02
      • 2016-01-21
      • 1970-01-01
      • 1970-01-01
      • 2014-02-06
      • 2020-02-03
      • 1970-01-01
      相关资源
      最近更新 更多