2017-06-01 8 views
0

私は簡単な方法を知っていて、必要な通貨のためにいくつかの異なるフィールドを作っていますが、それは醜いだけではありませんが、通貨はハードコードされます。ジャンゴ・パーラーを通して私はよりエレガントに見えますが、私はそれをどうやって行うのかよく分かりません。Django-shopの価格をローカライズする正しい方法は何ですか?

+0

私が見たものから、練習はいつもあなたが受諾される通貨で表示され、現地価格で見積もりを示すことです。たとえば、米国からamazon.caにアクセスすると、CADの横におおよその米ドルが表示されます。私はテンプレートタグでこれを行います。 [fixer](http://fixer.io/)などのサイトから簡単にコンバージョンを引き出すことができます。 – Brobin

答えて

0

私はこれが正しい方法だと思う:

class CurrencyModel(TranslatableModel): 
    translations = TranslatedFields(
     title = models.CharField(_("Title"), max_length=120), 
    ) 
    code = models.CharField(_('ISO 4217 code'), max_lenght=3) 

    def __str__(self): 
     return self.title 

class ItemModel(BaseProduct, TranslatableModel): 
    slug = models.SlugField(_("Slug"), unique=True) 
    translations = TranslatedFields(
     product_name = models.CharField(_("Item Name"), max_length=256), 
     item_price = models.FloatField(_("Item price")), 
     currency = models.ForeignKey(CurrencyModel, verbose_name=_("Currency ")), 
    ) 

    def get_price(self, request): 
     money = MoneyMaker(self.currency.code) 
     return money(self.item_price) 
関連する問題