我正在寻找最简单的方法来对齐正确的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"
非常感谢
答案 0 :(得分:3)
如果您正在谈论管理表单,则需要覆盖窗口小部件。
Widget.attrs
允许您设置自定义HTML属性,以便在呈现时添加到表单字段。您可以使用ModelAdmin.formfield_overrides
覆盖管理员中的表单字段小部件。
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;', }),
},
}