我有一个模型Product
和模型Price
。 Price
有一个ForeignKey(Product...)
和original_price
以及eur_price
MoneyField
' s(Django-money)。因此,一个Product
对象可以包含多个Price
个对象。
我尝试将Price
个对象内联到Product
模型管理中,这可以正常工作,但是当我将original_price和eur_price设置为readonly_fields
时,它会显示金额而非货币。
这不是readonly
:
class PriceInline(admin.TabularInline):
model = Price
max_num = 10
#readonly_fields = ('original_price','eur_price')
class ProductAdmin(admin.ModelAdmin):
inlines = [ScanInline,]
这与readonly:
class PriceInline(admin.TabularInline):
model = Price
max_num = 10
readonly_fields = ('original_price','eur_price')
class ProductAdmin(admin.ModelAdmin):
inlines = [ScanInline,]
如果这些字段是只读的,你知道如何在那里显示货币吗?
答案 0 :(得分:0)
如果您在管理员中执行此操作,则会发生这种情况。您可以尝试覆盖表单吗?
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
答案 1 :(得分:0)
为什么不这样:
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))