{ "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" } ] }