У меня есть несколько моделей с несколькими DecimalField, представляющими деньги, например 100.34 EUR.Отображение DecimalField с валютой в администраторе django
Моя цель состояла в том, чтобы вывести валюту в списке администратора, как показано в этом
http://i.imgur.com/XKEQFp9.png
изображение Однако я не мог найти способ сделать это для каждого денежного поля.
Я попытался создать пользовательский MoneyField, наследующий от DecimalField и сменивший unicode, но это не сработало.
Я также пробовал с https://github.com/jakewins/django-money, но мне не повезло.
я исследовал исходный код Джанго администратора, и я наконец-то нашел проблему:
В django.admin.contrib.admin.util.py в функции display_for_field она проверяет, если значение является экземпляром DecimalField. Если это так, он отображает его как десятичное число.
elif isinstance(field, models.DecimalField):
return formats.number_format(value, field.decimal_places)
Это имеет смысл, но это мешает мне отображать символ/текст EUR в администраторе.
Как я могу решить эту проблему?
Я знаю, что могу просто использовать метод для каждого поля, отображающего отформатированное значение в виде строки, но я хотел знать, был ли способ DRYer.
Несомненно, но я должен сделать метод для каждого поля. Это не похоже на DRY-решение –
или используйте «{: .2f}». Format (obj.amount) – radtek