Python Django管理员:MoneyField没有';不显示货币

Python Django管理员:MoneyField没有';不显示货币,python,django,django-admin,django-1.10,Python,Django,Django Admin,Django 1.10,我有一个型号产品和型号价格。价格有一个外键(产品…和原价和欧元价格,它们是货币领域(Django货币)。因此,一个产品对象可以有多个相关的价格对象 我试图将Price对象内联到Productmodel admin中,这可以正常工作,但当我将原始价格和欧元价格设置为readonly\u字段时,它显示的是金额,而不是货币 这并没有使它们成为只读的: class PriceInline(admin.TabularInline): model = Price max_num = 10

我有一个型号
产品
和型号
价格
价格
有一个
外键(产品…
原价
欧元价格
,它们是
货币领域
(Django货币)。因此,一个
产品
对象可以有多个相关的
价格
对象

我试图将
Price
对象内联到
Product
model admin中,这可以正常工作,但当我将原始价格和欧元价格设置为
readonly\u字段
时,它显示的是金额,而不是货币

这并没有使它们成为只读的:

class PriceInline(admin.TabularInline):
    model = Price
    max_num = 10
    #readonly_fields = ('original_price','eur_price')


class ProductAdmin(admin.ModelAdmin):
    inlines = [ScanInline,]

这是只读的:

class PriceInline(admin.TabularInline):
    model = Price
    max_num = 10
    readonly_fields = ('original_price','eur_price')


class ProductAdmin(admin.ModelAdmin):
    inlines = [ScanInline,]


如果这些字段是只读的,您知道如何在那里显示货币吗?

是的,如果您在管理中这样做,就会发生这种情况。你能试着重写表单吗

class PriceInline(admin.TabularInline):
    model = Price
    max_num = 10

    def get_form(self, request, obj=None, **kwargs):
        form = super(PriceInline, self).get_form(request, obj, **kwargs)
        form.base_fields['original_price'].disabled = True

        return form

为什么不这样做:

class PriceInline(admin.TabularInline):
    model = Price
    max_num = 10
    readonly_fields = ('get_original_price','get_eur_price')

    def get_original_price(self, obj):
        return mark_safe('€{}'.format(obj.original_price))

    def get_eur_price(self, obj):
        return mark_safe('€{}'.format(obj.eur_price))