{
"info": {
"author": "Matthias Kestenholz",
"author_email": "mk@406.ch",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"Environment :: Web Environment",
"Framework :: Django",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.6",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.3",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
"Topic :: Software Development",
"Topic :: Software Development :: Libraries :: Application Frameworks"
],
"description": "=================\ndjango-keyed-urls\n=================\n\n.. image:: https://travis-ci.org/matthiask/django-keyed-urls.png?branch=master\n :target: https://travis-ci.org/matthiask/django-keyed-urls\n\nAn app for those cases when you need language-specific URLs in the database\nfor use in templates or as redirects.\n\n\nInstallation\n------------\n\nInstall ``django-keyed-urls`` with pip::\n\n pip install django-keyed-urls\n\nAdd ``keyed_urls`` and ``modeltranslation`` to ``INSTALLED_APPS``.\n\nSpecify a custom location for South migrations for ``keyed_urls`` -- you really\nwant to use South to handle schema changes when adding or removing languages\nfrom ``LANGUAGES``::\n\n SOUTH_MIGRATION_MODULES = {\n 'keyed_urls': 'yourapp.migrate.keyed_urls',\n }\n\nCreate and run database migrations::\n\n python manage.py schemamigration keyed_urls --initial\n python manage.py migrate keyed_urls\n\n\nIf you want to use the forwarding URLs, add an entry to your URLconf file. It\nis recommended to use ``i18n_patterns`` because that means that\nlanguage-specific redirection URLs are automatically handled correctly::\n\n from django.conf.urls import include, url\n from django.conf.urls.i18n import i18n_patterns\n\n urlpatterns += i18n_patterns(\n '',\n url(r'', include('keyed_urls.urls'),\n )\n\n\nUsage\n-----\n\nTemplate tags\n~~~~~~~~~~~~~\n\nUsage is simple::\n\n {% load keyed_urls %}\n\n {% keyed_url 'some_key' as url %}\n\n bla\n\n bla\n\nOr::\n\n {% load keyed_urls %}\n\n {% keyed_url 'some_key' language='en' as url %}\n\n bla\n\n\nIf a key does not exist and the tag is used as an assignment tag, the variable\nis set to ``None``. Otherwise, a ``KeyDoesNotExist`` exception is raised which\nalso aborts template rendering. The behavior is equal to the behavior of\nDjango's own ``{% url %}`` template tag in this regard.\n\n\nHelpers\n~~~~~~~\n\nTwo additional helpers are available. If you need URLs in python code,\nuse the following snippet::\n\n from keyed_urls import get_url\n\n some_url = get_url('some_key')\n some_other_url = get_url('some_key', language='en')\n\nThe advantage of using ``get_url`` compared to fetching a ``KeyedURL`` model\nfrom the database and accessing its ``url`` attribute is that ``get_url`` is\ncaching all results. Since ``get_url`` is also used internally by the template\ntag described above this means that you do not have to worry about performance\nas much as when using models directly. ``get_url`` raises a ``KeyDoesNotExist``\nexception if a particular URL cannot be found. This can be prevented by passing\n``fail_silently=True``.\n\nThe following snippet can be used to fetch the forwarding URL::\n\n from keyed_urls import get_forwarding_url\n\n url = get_forwarding_url('some_key')\n url = get_forwarding_url('some_key', language='de')\n\n``get_forwarding_url`` is nothing more but a thin wrapper around Django's own\n``reverse`` method. This method raises a ``NoReverseMatch`` exception if the\nkey is invalid, but does not check whether the given key exists at all in the\ndatabase. When visiting the link, users will get a 404 response. For\n``get_forwarding_url`` to work you have to include ``keyed_urls.urls``\nsomewhere in your URLconf as described above, preferrably inside an\n``i18n_patterns`` block.",
"description_content_type": null,
"docs_url": null,
"download_url": "UNKNOWN",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://github.com/matthiask/django-keyed-urls/",
"keywords": null,
"license": "BSD License",
"maintainer": null,
"maintainer_email": null,
"name": "django-keyed-urls",
"package_url": "https://pypi.org/project/django-keyed-urls/",
"platform": "OS Independent",
"project_url": "https://pypi.org/project/django-keyed-urls/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "http://github.com/matthiask/django-keyed-urls/"
},
"release_url": "https://pypi.org/project/django-keyed-urls/0.4.1/",
"requires_dist": null,
"requires_python": null,
"summary": "So simple you'll burst into tears right away.",
"version": "0.4.1"
},
"last_serial": 2202867,
"releases": {
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "4a6fda86c776f7181e56e651e731553d",
"sha256": "d21f1e4d149ad2c192a6f91ead03db82f2ec93cf0576ad87eb34846b4bf739ae"
},
"downloads": -1,
"filename": "django_keyed_urls-0.1.0-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "4a6fda86c776f7181e56e651e731553d",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 7274,
"upload_time": "2013-12-17T15:11:36",
"url": "https://files.pythonhosted.org/packages/d8/3b/fb474c8ac19dbc84d24dcab20c27c82ee2060bd34659caf906b9957fc9aa/django_keyed_urls-0.1.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "b3642d2be3f1f59840f7809c773c9af1",
"sha256": "db9dcff1d24beb44cfcc58b21635ece93013ea31b41f09d34b19a84d891a332c"
},
"downloads": -1,
"filename": "django-keyed-urls-0.1.0.tar.gz",
"has_sig": true,
"md5_digest": "b3642d2be3f1f59840f7809c773c9af1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6515,
"upload_time": "2013-12-17T15:11:24",
"url": "https://files.pythonhosted.org/packages/c4/5b/d9f3bb54e68afde946da0a0f9b5ef98fa50855f492a92fb3324fa84cebbd/django-keyed-urls-0.1.0.tar.gz"
}
],
"0.1.1": [
{
"comment_text": "",
"digests": {
"md5": "b01e8163775c796d14c24a2f1bb8be1c",
"sha256": "f2268ab91de21c4828a0c0143c103b451311fdfe781e582f82b00adedbe38c3a"
},
"downloads": -1,
"filename": "django_keyed_urls-0.1.1-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "b01e8163775c796d14c24a2f1bb8be1c",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 7292,
"upload_time": "2013-12-17T15:33:33",
"url": "https://files.pythonhosted.org/packages/a7/c8/4cd95d2f75a5b112650a525766a37874a976119feeeba841db3959c9c5bd/django_keyed_urls-0.1.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5ebac66655c36c25d18db985a3aed436",
"sha256": "f8ae53372e15c3830143306004e4b4348af6090beeb876238af98d540e720c87"
},
"downloads": -1,
"filename": "django-keyed-urls-0.1.1.tar.gz",
"has_sig": true,
"md5_digest": "5ebac66655c36c25d18db985a3aed436",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5282,
"upload_time": "2013-12-17T15:33:19",
"url": "https://files.pythonhosted.org/packages/f5/9a/e5d2e22179328ced9cb3b09821b51f724bd206d64a30a060439dd2f9b8a1/django-keyed-urls-0.1.1.tar.gz"
}
],
"0.1.2": [
{
"comment_text": "",
"digests": {
"md5": "9ba8048d7ddfca81ace64f60a18e06ea",
"sha256": "2f06415336cd2f6de208af7ed3b9648eda9296c4c0e3cd5efe97c18c994189d9"
},
"downloads": -1,
"filename": "django_keyed_urls-0.1.2-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "9ba8048d7ddfca81ace64f60a18e06ea",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 7445,
"upload_time": "2013-12-17T16:33:12",
"url": "https://files.pythonhosted.org/packages/57/05/08715f3ce876ea7475afdb472083b90b20a05b7df89fedc1cacebe3c44f9/django_keyed_urls-0.1.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "c0648f701654cf8d6522e4e76dbb8812",
"sha256": "958f226ab267060e39c9349cbbae77d7bf20b0fc8b76e7a9babe18f41cbdfa7b"
},
"downloads": -1,
"filename": "django-keyed-urls-0.1.2.tar.gz",
"has_sig": true,
"md5_digest": "c0648f701654cf8d6522e4e76dbb8812",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5394,
"upload_time": "2013-12-17T16:32:57",
"url": "https://files.pythonhosted.org/packages/51/ba/149c8a64872d5244b016ef22458cbff9bd1889d06f714008680d61ca34c4/django-keyed-urls-0.1.2.tar.gz"
}
],
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "f72c23a6938abdc83f1581d232a56783",
"sha256": "909897f9699a78cd995dfb05269278eb5f89d148c784339a1ad3a011319e40e6"
},
"downloads": -1,
"filename": "django_keyed_urls-0.2.0-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "f72c23a6938abdc83f1581d232a56783",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 9144,
"upload_time": "2013-12-19T03:56:10",
"url": "https://files.pythonhosted.org/packages/cb/6a/60905f67ec376d32c76913f61ee4d5e3f8a1aaa7b60b9c9a5b7a072a5f6d/django_keyed_urls-0.2.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "4e31318b70bad75b4a58daa732b38310",
"sha256": "7232c3b0c89363e4975a5b221b8bdb650e23ff229b93c23f915b44c43d19a520"
},
"downloads": -1,
"filename": "django-keyed-urls-0.2.0.tar.gz",
"has_sig": true,
"md5_digest": "4e31318b70bad75b4a58daa732b38310",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6281,
"upload_time": "2013-12-19T03:56:00",
"url": "https://files.pythonhosted.org/packages/53/f4/2fada4593cdbf3f26fdc7b0f436936dd9aa7c0593051e5418ac68f437302/django-keyed-urls-0.2.0.tar.gz"
}
],
"0.3.0": [
{
"comment_text": "",
"digests": {
"md5": "98ab078fdd7473e52dc22410a98d8282",
"sha256": "40ea747e223844bb1f59a4cec9c849656f2a9366456f203fbc5225f96215c626"
},
"downloads": -1,
"filename": "django_keyed_urls-0.3.0-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "98ab078fdd7473e52dc22410a98d8282",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 9158,
"upload_time": "2013-12-19T04:28:29",
"url": "https://files.pythonhosted.org/packages/2c/f6/dfc254dd9d88d4f811216ec9f2d0a618af5460d38dcfdd3d6d04ac7b355e/django_keyed_urls-0.3.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "3ee7bccb342043053ab23bcf6642d1e4",
"sha256": "1aa4d8f755cbe51b44811595e1349041627595e42911c16c28262d4c3b6899d7"
},
"downloads": -1,
"filename": "django-keyed-urls-0.3.0.tar.gz",
"has_sig": true,
"md5_digest": "3ee7bccb342043053ab23bcf6642d1e4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6281,
"upload_time": "2013-12-19T04:28:19",
"url": "https://files.pythonhosted.org/packages/56/31/6774447b5c3b71d9dae44f893cda7d44317e9b100ca02bc642a24cba0656/django-keyed-urls-0.3.0.tar.gz"
}
],
"0.4.0": [
{
"comment_text": "",
"digests": {
"md5": "ba7d0e709918d366b4c82b0db7117036",
"sha256": "c93fc73c67b1cf7d580b018cf3a2ed30e7c79089d25b6e86dfb587f086cb6f8f"
},
"downloads": -1,
"filename": "django_keyed_urls-0.4.0-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "ba7d0e709918d366b4c82b0db7117036",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 10613,
"upload_time": "2013-12-19T07:47:21",
"url": "https://files.pythonhosted.org/packages/50/a6/163a281d5f8dd16ee3fc2ca62a5b0efb9253671ce821aa4cc6eb937cdd22/django_keyed_urls-0.4.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "eeb4a9117d01028f61c7a4723293e29a",
"sha256": "4c7e2df3b8d83962c25fec7645d7944997debe0780b309fd64077a448d6cf0df"
},
"downloads": -1,
"filename": "django-keyed-urls-0.4.0.tar.gz",
"has_sig": true,
"md5_digest": "eeb4a9117d01028f61c7a4723293e29a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7125,
"upload_time": "2013-12-19T07:47:09",
"url": "https://files.pythonhosted.org/packages/f2/8a/860ef1ae3dbb037ad2a56d07d03d1f9a08a92db8b91c51d1590a4d980115/django-keyed-urls-0.4.0.tar.gz"
}
],
"0.4.1": [
{
"comment_text": "",
"digests": {
"md5": "e1bdcf7b8663c9dc1f94e3beabbddf7e",
"sha256": "97d942801db63aa0852e3a9b5a4c77e00a7f31eff30bc05f5ec12abfda0ecaa5"
},
"downloads": -1,
"filename": "django_keyed_urls-0.4.1-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "e1bdcf7b8663c9dc1f94e3beabbddf7e",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 10615,
"upload_time": "2013-12-19T15:23:02",
"url": "https://files.pythonhosted.org/packages/80/8c/b7da8f13143b6ae69ec62103bb65a5695441e9cfb43993ed4f7ff7825395/django_keyed_urls-0.4.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "31694a5c6e05db4181bb1b6fc26da330",
"sha256": "e33f6e474c20d43ee4807d09fdc0e8ded462c5589fb75024bb99d179c7b5de20"
},
"downloads": -1,
"filename": "django-keyed-urls-0.4.1.tar.gz",
"has_sig": true,
"md5_digest": "31694a5c6e05db4181bb1b6fc26da330",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7127,
"upload_time": "2013-12-19T15:22:51",
"url": "https://files.pythonhosted.org/packages/58/72/3a8ec0f7a5a1cae7263b7c5b648d270df29d2a577be4cf9c631e54e9117d/django-keyed-urls-0.4.1.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "e1bdcf7b8663c9dc1f94e3beabbddf7e",
"sha256": "97d942801db63aa0852e3a9b5a4c77e00a7f31eff30bc05f5ec12abfda0ecaa5"
},
"downloads": -1,
"filename": "django_keyed_urls-0.4.1-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "e1bdcf7b8663c9dc1f94e3beabbddf7e",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 10615,
"upload_time": "2013-12-19T15:23:02",
"url": "https://files.pythonhosted.org/packages/80/8c/b7da8f13143b6ae69ec62103bb65a5695441e9cfb43993ed4f7ff7825395/django_keyed_urls-0.4.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "31694a5c6e05db4181bb1b6fc26da330",
"sha256": "e33f6e474c20d43ee4807d09fdc0e8ded462c5589fb75024bb99d179c7b5de20"
},
"downloads": -1,
"filename": "django-keyed-urls-0.4.1.tar.gz",
"has_sig": true,
"md5_digest": "31694a5c6e05db4181bb1b6fc26da330",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7127,
"upload_time": "2013-12-19T15:22:51",
"url": "https://files.pythonhosted.org/packages/58/72/3a8ec0f7a5a1cae7263b7c5b648d270df29d2a577be4cf9c631e54e9117d/django-keyed-urls-0.4.1.tar.gz"
}
]
}