2017-06-01 81 views
0

我知道简单的方法,为所需的货币制作几个不同的字段,但这不仅丑陋,而且货币将被硬编码。在我看来,django-parler更优雅,但我不太明白如何去做。在Django商店中定价的正确方法是什么?

+0

从我所看到的,这种做法是始终在您将要接受的货币显示,并显示在当地的价格估计值。例如,如果我从美国访问amazon.ca,它会显示CAD,并在其旁边显示近似USD。我会用模板标签来做到这一点。您可以轻松地从[修复程序](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) 
相关问题