0

我正在寻找最简单的方法来对齐正确的 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"

非常感谢

4

2 回答 2

3

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

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

管理员.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到输入字段。如果您使用引导程序,它是内置的,否则只需添加 css:

.text-right {
    text-align: right;
}
于 2013-06-26T14:49:29.060 回答
0

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

formfield_overrides = {
    models.DecimalField: {
        'widget': forms.TextInput(attrs={'style': 'text-align:right;', }),
    },
}
于 2020-06-07T00:21:00.180 回答