Django admin как показать валютные числа в формате с разделителями-запятыми

В моих моделях я имею следующее:

class Example(Basemodel):
       price = models.IntegerField(default=0)

и в моей админке у меня вот это:

@admin.register(Example)
class ExampleAdmin(admin.ModelAdmin):
    list_display = ('price',)

Я хочу, чтобы поле цены отображалось в формате с разделителями-запятыми вместо типичного целочисленного формата, и я хочу сделать это на стороне бэкенда. Например: 333222111 должно быть 333,222,111. Кто-нибудь может предложить мне решение?

Вместо этого вы можете работать со свойством, например:

from django.contrib import admin


class Example(Basemodel):
    price = models.IntegerField(default=0)

    @property
    @admin.display(description='price', ordering='price')
    def price_formatted(self):
        return f'{self.price:,}'

и использовать это свойство:

@admin.register(Example)
class ExampleAdmin(admin.ModelAdmin):
    list_display = ('price_formatted',)

попробуйте тысячный сеператор в вашем settings.py

USE_THOUSAND_SEPARATOR = True

В качестве альтернативы можно использовать intercoma для преобразования целого числа в строку, содержащую запятые через каждые три цифры

Вернуться на верх