一个django应用程序,用于10n个邮政地址。
django-postal的Python项目详细描述
Django邮政
(基于http://github.com/mthornhill/django-postal)
警告
这个项目处于alpha模式,api处于不断变化之中。
一个django应用程序,它为邮政地址提供一个位置不可知的模型。
这个项目背后的动机是大多数国家都有不同形式的 邮政地址,例如http://www.bitboost.com/ref/international-address-formats.html, http://en.wikipedia.org/wiki/Address_%28geography%29
此应用程序假设全球所有邮政地址都可以由5个可选地址组成 地址行加上国家代码。
然后根据所选国家/地区本地化每行的标题。 每个地址行的进一步信息可以从 django.contrib.localflavor字段和小部件,例如英国的
from django import forms from django.utils.translation import ugettext_lazy as _ from django.contrib.localflavor.uk.forms import UKPostcodeField, UKCountySelect from postal.forms import PostalAddressForm class GBPostalAddressForm(PostalAddressForm): line1 = forms.CharField(label=_(u"Street"), required=False, max_length=50) line2 = forms.CharField(label=_(u"Area"), max_length=50) city = forms.CharField(label=_(u"Town"), max_length=50) state = forms.CharField(label=_(u"County"), widget=UKCountySelect, max_length=50) code = UKPostcodeField(label=_(u"Postcode"))
希望各捐助者为每个国家提供地址格式 最终这些地址信息可以找到 django.contrib.localflavor
依赖关系
用法
一。在^{tt3}中将django countries和django posal添加到您的INSTALLED_APPS中$ 例如:
INSTALLED_APPS = ( "countries", "postal", ... )
将postal_form添加到模板:
some_template.html {% load postal_tags %} <html> <head> <script src="{{ MEDIA_URL }}js/jquery-1.4.2.min.js" type="text/javascript" charset="utf-8"></script> </head> <body> <form method="POST" action=""> {% csrf_token %} {{form.as_p}} {% monitor_country_change %} <script type="text/javascript"> $('form').monitor_country_change('#id_country'); </script> <input type="submit"/> </form> </body> </html>
在上述表格中更改国家应使地址表格本地化。
在您的视图代码中,添加代码以保存地址表单,例如:
from postal.forms import PostalAddressForm def my_view(request) if request.method == "POST": address_form = PostalAddressForm(request.POST, prefix=request.POST.get('prefix', '')) address_form.save()
如何使用本地化地址
默认情况下,地址本地化处于启用状态。在settings.py集合中关闭地址l10n:
POSTAL_ADDRESS_L10N = False
自定义地址标签和要求
如果要自定义地址标签以及地址行是否 是否必需,您可以将以下变量添加到settings.py:
POSTAL_ADDRESS_LINE1, POSTAL_ADDRESS_LINE2, POSTAL_ADDRESS_CITY, POSTAL_ADDRESS_STATE, POSTAL_ADDRESS_CODE
这些变量中的每一个都被设置为^{tt6}格式的元组$ label用于标记字段,第二个布尔值设置 字段是否必需,例如:
POSTAL_ADDRESS_LINE1 = ("Department", True)
生成历史记录
0.9.6条 拆卸django活塞要求 修复了Django 1.7兼容性问题 增加意大利邮政地址表 (感谢Francesco Facconi的上述更改)
0.7.2条 主要的重构,所有的模型都被删除了,所以django postal只提供本地化的表单。 由支持项目来定义他们自己的地址模型
0.4分 不要强制邮政地址的唯一性
开发人员,如何贡献
吉特福:
$ git clone git@github.com:mthornhill/django-postal.git $ cd django-postal $ virtualenv . --no-site-packages $ source bin/activate $ python bootstrap.py $ bin/buildout -v $ bin/django syncdb $ bin/django test postal $ bin/django runserver
新的国家可以通过它们的 两个字母的国家代码,例如us
每个国家文件夹都包含一个__init__.py和一个forms.py
forms.py包含本地化地址。