django对齐不能对齐

时间:2013-06-26 14:16:03

标签: django alignment decimal

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

非常感谢

2 个答案:

答案 0 :(得分:3)

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

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;
}

答案 1 :(得分:0)

为简化起见,您可以将CSS样式添加到attrs中,如下所示。

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