一个可重用的django应用程序,受etsy的启发,可以控制汇率和喜爱的语言代码

django-metasettings的Python项目详细描述


Build Status

一个可重用的django应用程序,用于控制汇率和收藏夹 语言代码,灵感来自Etsy。

首先你需要在 open exchange rates输入汇率。

安装

  1. 要安装它,只需

    pip install django-metasettings
    
  2. 将“元设置”添加到INSTALLED_APPS

    INSTALLED_APPS = (
        'metasettings',
    )
    

如果要安装仪表板以允许用户选择语言 以及一种货币,你将不得不安装从这样的元设置的网址

# urls.py

from django.conf.urls import patterns, include

urlpatterns = patterns(
    '',
    (r'^', include('metasettings.urls'))
)

您可以将适当的样式表添加到此仪表板视图中,并使用这种样式表 结果:

http://cl.ly/image/2j0I3V1B0G1w/metasettings.png

用法

要导入当前汇率,请运行

$ python manage.py sync_rates --app_id=openexchangesratesappid

要导入日期范围内的汇率,请运行

$ python manage.py sync_rates --app_id=openexchangesratesappid --date_start=2011-10-01 --date_end=2013-10-01

它将在两个日期之间的每个月进口汇率。

OpenExchange应用程序ID也可以存储在 OPENEXCHANGERATES_APP_IDdjango设置。

如果您可以将金额从一种货币转换为另一种货币:

frommetasettings.modelsimportconvert_amountconvert_amount('EUR','USD',15)# ~20 euros

默认情况下,如果要转换整数,它将返回完整的十进制数:

frommetasettings.modelsimportconvert_amountconvert_amount('EUR','USD',15,ceil=True)# ~20 euros

要使用客户端IP地址检索货币:

frommetasettings.modelsimportget_currency_from_ip_addressget_currency_from_ip_address('78.192.244.8')# EUR

我们正在使用GeoIP,它使您能够检索国家和 然后我们将国家与现有货币联系起来。

所以不要忘记导入一个新的geoip数据库,并确保有geoip路径 在你的设置中。

我们建议使用django-geoip-utils 它提供了一些帮助来操作geoip api。

货币字段

Django模型的货币字段,提供所有ISO4217货币作为选择。

CurrencyField基于django的CharField,提供了选择 对应于官方的ISO4217货币列表(默认 max_length第3页)。

使用CurrencyField考虑以下模型:

fromdjango.dbimportmodelsfrommetasettings.fieldsimportCurrencyFieldclassProject(models.Model):name=models.CharField(max_length=100)currency=CurrencyField()

任何Project实例都有一个currency属性,您可以使用该属性 获取项目货币的详细信息:

>>>project=Project(name='My project',currency='EUR')>>>project.currencyCurrency(code='EUR')>>>project.currency.label'Euro'>>>project.currency.symbol'€'>>>project=Project(name='My project',currency='USD')>>>project.currencyCurrency(code='USD')>>>project.currency.label'United States Dollar'>>>project.currency.symbol'$'>>>project.currency.trigram'USD'

这个对象(project.currency在示例中)是一个Currency实例, 如下所述。

使用blank_label为中显示的初始空白选项设置标签 表格:

currency = CurrencyField(blank_label='(select currency)')

路线图

issues

此应用程序只包括主要货币,请立即发送 修补或改进。

灵感

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java 安卓 XMLPullParser错误   Java响应网格布局   Java中使用递归的不同方法   java变量可能尚未初始化(边加权图)   java如何将这样的文件插入MySQL数据库   java云端点:不允许实体类型的数组或集合   java(编译器或jvm)是否以不同方式处理类的静态最终成员?如果是,怎么做   java如何从lambda表达式返回新的非抽象映射?   java JDK 7支持的最大Spring版本是什么   我们如何从java类生成DTD   java在我的例子中BindingResult、FieldErrors或GlobalErrors是否可以为null?   java[LibGDX][GWT]读取文件外观时出错。HTML格式的json[序列化异常]   字典Java不可修改密钥集映射   java Admob在firebase sdk之后显示测试广告,但不显示真实广告