跳转到主要内容

一个可重用的Django应用程序,用于控制货币汇率和喜欢的语言代码,受etsy启发。

项目描述

Build Status

一个可重用的Django应用程序,用于控制货币汇率和喜欢的语言代码,受etsy启发。

首先您需要在open exchange rates上申请一个应用ID以导入汇率。

安装

  1. 要安装它,只需

    pip install django-metasettings
  2. 将‘metasettings’添加到您的INSTALLED_APPS

    INSTALLED_APPS = (
        'metasettings',
    )

如果您想安装仪表板以允许用户选择语言和货币,您将不得不安装来自metasettings的urls,如下所示

# 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

它将为两个日期之间的每个月份导入汇率。

OpenExchangeRates的应用ID也可以存储在Django设置OPENEXCHANGERATES_APP_ID中。

如果您要将一种货币的金额转换为另一种货币

from metasettings.models import convert_amount

convert_amount('EUR', 'USD', 15)  # ~20 euros

默认情况下,它将返回一个完整的十进制数,如果您想要一个转换后的整数

from metasettings.models import convert_amount

convert_amount('EUR', 'USD', 15, ceil=True)  # ~20 euros

要获取客户端IP地址的货币

from metasettings.models import get_currency_from_ip_address

get_currency_from_ip_address('78.192.244.8') # EUR

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

所以,别忘了导入新的GeoIP数据库,并确保在设置中包含GEOIP_PATH

我们建议使用django-geoip-utils,它提供了一些操作GeoIP API的帮助器。

CurrencyField

这是一个为Django模型提供的货币字段,它提供了所有ISO 4217货币的选择。

CurrencyField基于Django的CharField,提供与官方ISO 4217货币列表对应的选项(默认最大长度为3)。

考虑以下使用CurrencyField的模型

from django.db import models

from metasettings.fields import CurrencyField

class Project(models.Model):
    name = models.CharField(max_length=100)
    currency = CurrencyField()

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

>>> project = Project(name='My project', currency='EUR')
>>> project.currency
Currency(code='EUR')
>>> project.currency.label
'Euro'
>>> project.currency.symbol
'€'
>>> project = Project(name='My project', currency='USD')
>>> project.currency
Currency(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)')

路线图

查看问题

此应用程序仅包括主要货币,不要犹豫发送补丁或改进。

灵感

项目详情


下载文件

下载您平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源分布

django-metasettings-0.3.8.tar.gz (23.8 kB 查看哈希值)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面