2017-02-13 4 views
0

Product 모델과 Price 모델이 있습니다. PriceForeignKey(Product...)original_priceeur_price이며 MoneyField '(Django-money)입니다. 그래서 하나의 Product 객체는 여러 개의 Price 객체를 가질 수 있습니다.Django-admin : MoneyField에 통화가 표시되지 않습니다.

정확하게 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,] 

enter image description here

그리고이 읽기 전용으로 :

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


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

enter image description here

당신이 통화를 표시하는 방법에 대해 어떤 생각을 가지고 있습니까 그 필드가 읽기 전용입니까?

답변

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