Как локализовать поля list_display в админке Django? - PullRequest
0 голосов
/ 29 ноября 2011

У меня есть поля с плавающей точкой в ​​list_display класса ModelAdmin, и я хотел бы, чтобы они отображались локализованно (например, 1.000,00).У меня уже есть USE_L10N и USE_I18N в True, но этого недостаточно.

Текущее решение, которое у меня есть, следующее:

from django.utils import formats

class MyAdmin(admin.ModelAdmin):
   list_display = ('localized_myfield')

   def localized_myfield(self, instance):
       return formats.localize(instance.myfield)

Это работает, но определяя один метод для каждого поля с плавающей запятойвыглядит как много ненужного кода.Есть ли более простой способ сделать это?

1 Ответ

0 голосов
/ 09 января 2012

Я нашел ответ после некоторого исследования. Чтобы добиться того, чего я хочу, необходимы три вещи:

  • USE_L10N = True в settings.py
  • USE_THOUSAND_SEPARATOR в settings.py
  • myfield = forms.DecimalField (localize = True) в forms.py (я наконец понял, что DecimalField был лучшим выбором, чем Floatfield в моем случае)
...