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))