=================
Django JS Reverse
=================
.. image:: https://img.shields.io/pypi/v/django-js-reverse.svg
:target: https://pypi.python.org/pypi/django-js-reverse/
.. image:: https://img.shields.io/travis/ierror/django-js-reverse/master.svg
:target: https://travis-ci.org/ierror/django-js-reverse
.. image:: https://coveralls.io/repos/github/vintasoftware/django-js-reverse/badge.svg?branch=master
:target: https://coveralls.io/github/vintasoftware/django-js-reverse?branch=master
.. image:: https://img.shields.io/github/license/ierror/django-js-reverse.svg
:target: https://raw.githubusercontent.com/ierror/django-js-reverse/master/LICENSE
.. image:: https://img.shields.io/pypi/wheel/django-js-reverse.svg
**Javascript url handling for Django that doesn’t hurt.**
This package is now maintained by `Vinta Software <https://vintasoftware.com.br>`__ but it was originally created by `@ierror <https://github.com/ierror>`__. Many thanks to you, Bernhard.
Overview
--------
Django JS Reverse is a small django app that makes url handling of
`named urls <https://docs.djangoproject.com/en/dev/topics/http/urls/#naming-url-patterns>`__ in javascript easy and non-annoying..
For example you can retrieve a named url:
urls.py:
::
url(r'^/betterliving/(?P<category_slug>[-\w]+)/(?P<entry_pk>\d+)/$', 'get_house', name='betterliving_get_house'),
in javascript like:
::
Urls.betterlivingGetHouse('house', 12)
Result:
::
/betterliving/house/12/
Requirements
------------
+----------------+--------------------+
| Python version | Django versions |
+================+====================+
| 3.11 | 4.2, 4.1, 4.0, 3.2 |
+----------------+--------------------+
| 3.10 | 4.2, 4.1, 4.0, 3.2 |
+----------------+--------------------+
| 3.9 | 4.2, 4.1, 4.0, 3.2 |
+----------------+--------------------+
| 3.8 | 4.2, 4.1, 4.0, 3.2 |
+----------------+--------------------+
Installation
------------
Install using ``pip`` …
::
pip install django-js-reverse
… or clone the project from github.
::
git clone https://github.com/ierror/django-js-reverse.git
Add ``'django_js_reverse'`` to your ``INSTALLED_APPS`` setting.
::
INSTALLED_APPS = (
...
'django_js_reverse',
)
Usage with webpack
------------------
Install using ``npm``
::
npm install --save django-js-reverse
Include none-cached view …
::
urlpatterns = patterns('',
url(r'^jsreverse.json$', 'django_js_reverse.views.urls_json', name='js_reverse'),
)
… or a cached one that delivers the urls JSON
::
from django_js_reverse import views
urlpatterns = patterns('',
url(r'^jsreverse.json$', cache_page(3600)(views.urls_json), name='js_reverse'),
)
Include JavaScript in your bundle:
::
// utils/djangoReverse.mjs
import _ from 'lodash/fp';
import djangoJsReverse from 'django-js-reverse';
export default _.once(
async () => {
const res = await fetch('/jsreverse.json');
const data = await res.json();
return djangoJsReverse(data);
}
)
::
// somePlace.mjs
import djangoReverse from './utils/djangoReverse';
(async () => {
const urls = await djangoReverse();
const url = urls.someViewName('some-arg');
...
})();
Usage as static file
--------------------
First generate static file by
::
./manage.py collectstatic_js_reverse
If you change some urls or add an app and want to update the reverse.js file,
run the command again.
After this add the file to your template
::
<script src="{% static 'django_js_reverse/js/reverse.js' %}"></script>
Usage with views
----------------
Include none-cached view …
::
urlpatterns = patterns('',
url(r'^jsreverse/$', 'django_js_reverse.views.urls_js', name='js_reverse'),
)
… or a cached one that delivers the urls javascript
::
from django_js_reverse.views import urls_js
urlpatterns = patterns('',
url(r'^jsreverse/$', cache_page(3600)(urls_js), name='js_reverse'),
)
Include javascript in your template
::
<script src="{% url js_reverse %}" type="text/javascript"></script>
or, if you are using Django > 1.5
::
<script src="{% url 'js_reverse' %}" type="text/javascript"></script>
Usage as template tag
_____________________
You can place the js_reverse JavaScript inline into your templates,
however use of inline JavaScript is not recommended, because it
will make it impossible to deploy a secure Content Security Policy.
See `django-csp <https://django-csp.readthedocs.io/>`__
::
{% load js_reverse %}
<script type="text/javascript" charset="utf-8">
{% js_reverse_inline %}
</script>
Use the urls in javascript
--------------------------
If your url names are valid javascript identifiers ([$A-Z\_][-Z\_$]\*)i
you can access them by the Dot notation:
::
Urls.betterlivingGetHouse('house', 12)
If the named url contains invalid identifiers use the Square bracket
notation instead:
::
Urls['betterliving-get-house']('house', 12)
Urls['namespace:betterliving-get-house']('house', 12)
You can also pass javascript objects to match keyword aguments like the
examples bellow:
::
Urls['betterliving-get-house']({ category_slug: 'house', entry_pk: 12 })
Urls['namespace:betterliving-get-house']({ category_slug: 'house', entry_pk: 12 })
Options
-------
Optionally, you can overwrite the default javascript variable ‘Urls’ used
to access the named urls by django setting
::
JS_REVERSE_JS_VAR_NAME = 'Urls'
Optionally, you can change the name of the global object the javascript variable
used to access the named urls is attached to. Default is :code:`this`
::
JS_REVERSE_JS_GLOBAL_OBJECT_NAME = 'window'
Optionally, you can disable the minfication of the generated javascript file
by django setting
::
JS_REVERSE_JS_MINIFY = False
By default all namespaces are included
::
JS_REVERSE_EXCLUDE_NAMESPACES = []
To exclude any namespaces from the generated javascript file, add them to the `JS_REVERSE_EXCLUDE_NAMESPACES` setting
::
JS_REVERSE_EXCLUDE_NAMESPACES = ['admin', 'djdt', ...]
If you want to include only specific namespaces add them to the `JS_REVERSE_INCLUDE_ONLY_NAMESPACES` setting
tips:
* Use "" (empty string) for urls without namespace
* Use "foo\0" to include urls just from "foo" namaspace and not from any subnamespaces (e.g. "foo:bar")
::
JS_REVERSE_INCLUDE_ONLY_NAMESPACES = ['poll', 'calendar', ...]
If you run your application under a subpath, the collectstatic_js_reverse needs to take care of this.
Define the prefix in your django settings:
::
JS_REVERSE_SCRIPT_PREFIX = '/myprefix/'
By default collectstatic_js_reverse writes its output (reverse.js) to your project's STATIC_ROOT.
You can change the output path:
::
JS_REVERSE_OUTPUT_PATH = 'some_path'
Running the test suite
----------------------
::
tox
License
-------
`MIT <https://raw.github.com/ierror/django-js-reverse/master/LICENSE>`__
Support
-------
This project is currently maintained by `Vinta Software <https://vintasoftware.com>`__. If you need support please contact us on `contact@vintasoftware.com <mailto:contact@vintasoftware.com>`__.
--------------
Enjoy!
0.10.2 (2023-08-14)
---------------------
- Drop support to older version of Python and Django that aren't being officially supported anymore.
0.10.1b1 (2023-08-14)
---------------------
- Update for Django 4.0 and 4.1, Python 3.8, 3.9, 3.10
0.10.1a1 (2023-08-14)
---------------------
- Update pypi deploy username and token
0.10.1a (2019-08-02)
--------------------
- support webpack and other bundlers
0.10.0 (2019-08-01)
-------------------
- deprecate django_js_reverse.VERSION. It will now always be ``(0, 9, 2)``
- deprecate js_reverse_inline
- use setuptools.setup
0.9.1
-----
- Fix: avoid XSS introduced in 0.9.0 when using js_reverse_inline. A low threat as content injected is likely to be trusted input from the urlconfig.
0.9.0
-----
- New: Support for Python 3.7
- New: Support for Django 2.2
- New: Unit Tests Script prefix with no slash, changed URL Conf`#72 <https://github.com/ierror/django-js-reverse/issues/72>`__
Thank you `graingert <https://github.com/graingert>`__
- Fix: "ROOT_URLCONF not taken into account" `#73 <https://github.com/ierror/django-js-reverse/issues/73>`__ `#74 <https://github.com/ierror/django-js-reverse/issues/74>`__
Thank you `LuukOost <https://github.com/LuukOost>`__ and `graingert <https://github.com/graingert>`__
- Refactoring: "move template logic to view" `#64 <https://github.com/ierror/django-js-reverse/issues/64>`__
Thank you `graingert <https://github.com/graingert>`__
- Fix: "Now using LooseVersion instead of StrictVersion to avoid issues with rc releases" `#67 <https://github.com/ierror/django-js-reverse/issues/64>`__
Thank you `kavdev <https://github.com/kavdev>`__
0.8.2
-----
- Fix: A bug fix in Django 2.0.6 has broken django-js-reverse `#65 <https://github.com/ierror/django-js-reverse/issues/65>`_
Thank you `kavdev <https://github.com/kavdev>`_
0.8.1
-----
- Fix: The tests folder of the `#53 <https://github.com/ierror/django-js-reverse/issues/53>`__ was still present in the build. => Added cleanup to the release make command.
0.8.0
-----
- New: Support for Django 2.0: `#58 <https://github.com/ierror/django-js-reverse/issues/58>`_
Thank you `wlonk <https://github.com/wlonk>`_
- Fix: `#53 <https://github.com/ierror/django-js-reverse/issues/53>`__ - Don't install the tests folder as a separate folder. Moved inside the django_js_reverse namespace.
0.7.3
-----
- New: Support for Django 1.10
- Chg: Renamed "production" branch to "master"
- Fix: `#48 <https://github.com/ierror/django-js-reverse/issues/48>`_ - "Change False to 'window' in global object name in README."
Thank you `karamanolev <https://github.com/karamanolev>`_
- Fix: `PR #45 <https://github.com/ierror/django-js-reverse/pull/45>`_ - "Fix: collectstatic_js_reverse usage message"
Thank you `ghedsouza <https://github.com/ghedsouza>`_
- Fix: `PR #44 <https://github.com/ierror/django-js-reverse/pull/44>`_ - "Remove duplicate _get_url call"
Thank you `razh <https://github.com/razh>`_
0.7.2
-----
- Fix: `#42 <https://github.com/ierror/django-js-reverse/issues/42>`_ - "Templatetag js_reverse_inline breaks on Django 1.9"
Thank you `tommikaikkonen <https://github.com/tommikaikkonen>`_
- Optimized imports
0.7.1
-----
- Fix: `#41 <https://github.com/ierror/django-js-reverse/issues/41>`_ - make it possible to use number 0 as url argument
0.7.0
-----
- New: By default collectstatic_js_reverse writes its output (reverse.js) to your project's STATIC_ROOT. Now You can change settings: JS_REVERSE_OUTPUT_PATH
Thank you `mjnaderi <https://github.com/ierror/django-js-reverse/pull/36>`__
- New: Support for Django 1.9
Thank you `mjnaderi <https://github.com/ierror/django-js-reverse/pull/37>`__
- New: It's now possible to include specific namespaces only. See JS_REVERSE_INCLUDE_ONLY_NAMESPACES setting for details.
Thank you BrnoPCmaniak
0.6.1
-----
- Refactored: Separate the view functionality from the JS generation
- New: Replaced slimit by rjsmin based on `#33 <https://github.com/ierror/django-js-reverse/pull/33/>`_
Thank you chripede
0.6.0
-----
- Fix: `#27 <https://github.com/ierror/django-js-reverse/pull/27>`_
Thank you michael-borisov
- New: Support for Keyword-based URL reversing `#30 <https://github.com/ierror/django-js-reverse/pull/30/>`_
Thank you hyperair
0.5.1
-----
- Fix: Current ply breaks slimit => force ply==3.4
0.5.0
-----
- New: Django allows you to have multiple URL patterns with the same name.
- This release adds support for the featuer.
Thank you defrex
- New: Test support for django 1.8
- New: test for script_prefix without ending slash
0.4.6
-----
- New: You can change the name (default=this) of the global object the javascript variable used to access the named
urls is attached to by changing JS_REVERSE_JS_GLOBAL_OBJECT_NAME setting.
Thank you aumo
0.4.5
-----
- Fix: If you run your application under a subpath, the collectstatic_js_reverse needs to take care of this. You can
now define a setting JS_REVERSE_SCRIPT_PREFIX that handles this issue.
Thank you lizter for reporting the issue
0.4.4
-----
- Improvement: management command collectstatic_js_reverse throws an error if settings.STATIC_ROOT is not set
- Tests: exluded a debug print from coverage
- Removed: support for django 1.4
- New: Templatetag to include js-reverse-js inline in your templates
0.4.3
-----
- New: Add better support for django rest framework
Django rest framework generates url names like user-list, so it get's converted now as well so
``Urls['user-list']()`` or the cleaner ``Urls.user_list()`` are both usable.
- Fix: JSReverseStaticFileSaveTest is working and being tested again
- Improvement: Cleanup Javascript
Thank you bulv1ne for the pull request
- New: Test support for the latest pypy versions pypy3-2.4.0 and pypy-2.5.0
- Fix: Get rid of test warning "MIDDLEWARE_CLASSES is not set." for Django >= 1.7
0.4.2
-----
- Provided PyPI wheel Package
0.4.1
-----
- Fix: collectstatic runner: moved to own management command collectstatic_js_reverse
0.4.0
-----
- Add ability to save in file::
<script src="{% static 'django_js_reverse/js/reverse.js' %}"></script>``
to do this run ./manage.py collectstatic
Add JS_REVERSE_EXCLUDE_NAMESPACES option
to exclude namespaces from import
default is []
To exclude e.g. admin and Django Debug Toolbar::
JS_REVERSE_EXCLUDE_NAMESPACES = ['admin', 'djdt']
Thank you Andertaker
0.3.4
-----
- New: Support for nested namespaces. Thank you hyperair
- New: Support for arguments within namespace path. Thank you hyperair
- New: Support for optional url arguments. Thank you hyperair
0.3.3
-----
- New: Django 1.7 support
0.3.2
-----
- New: Default minification of the generated javascript file
- Fix: content type of the jsreverse script. Thank you @emcsween
- Testing: Use selenium for better testing
0.3.1
-----
- Added support for namespaces
0.3.0
-----
- Test support for pypy, python 3.4, django 1.6
- Refactored include of JS_REVERSE_JS_VAR_NAME js var name
- Get rid of "DeprecationWarning: The mimetype keyword argument is depracated, use content_type instead"
Raw data
{
"_id": null,
"home_page": "https://github.com/ierror/django-js-reverse",
"name": "django-js-reverse",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "",
"author": "Bernhard Janetzki",
"author_email": "boerni@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/98/37/1d8c8a9f9de2588df8f18b36f6a3e4134e362f49a14d0c9b0b02a301ef9e/django-js-reverse-0.10.2.tar.gz",
"platform": null,
"description": "=================\nDjango JS Reverse\n=================\n\n.. image:: https://img.shields.io/pypi/v/django-js-reverse.svg\n :target: https://pypi.python.org/pypi/django-js-reverse/\n\n.. image:: https://img.shields.io/travis/ierror/django-js-reverse/master.svg\n :target: https://travis-ci.org/ierror/django-js-reverse\n\n.. image:: https://coveralls.io/repos/github/vintasoftware/django-js-reverse/badge.svg?branch=master\n :target: https://coveralls.io/github/vintasoftware/django-js-reverse?branch=master\n\n.. image:: https://img.shields.io/github/license/ierror/django-js-reverse.svg\n :target: https://raw.githubusercontent.com/ierror/django-js-reverse/master/LICENSE\n\n.. image:: https://img.shields.io/pypi/wheel/django-js-reverse.svg\n\n\n**Javascript url handling for Django that doesn\u2019t hurt.**\n\nThis package is now maintained by `Vinta Software <https://vintasoftware.com.br>`__ but it was originally created by `@ierror <https://github.com/ierror>`__. Many thanks to you, Bernhard.\n\n\nOverview\n--------\n\nDjango JS Reverse is a small django app that makes url handling of\n`named urls <https://docs.djangoproject.com/en/dev/topics/http/urls/#naming-url-patterns>`__ in javascript easy and non-annoying..\n\nFor example you can retrieve a named url:\n\nurls.py:\n\n::\n\n url(r'^/betterliving/(?P<category_slug>[-\\w]+)/(?P<entry_pk>\\d+)/$', 'get_house', name='betterliving_get_house'),\n\nin javascript like:\n\n::\n\n Urls.betterlivingGetHouse('house', 12)\n\nResult:\n\n::\n\n /betterliving/house/12/\n\n\nRequirements\n------------\n\n+----------------+--------------------+\n| Python version | Django versions |\n+================+====================+\n| 3.11 | 4.2, 4.1, 4.0, 3.2 |\n+----------------+--------------------+\n| 3.10 | 4.2, 4.1, 4.0, 3.2 |\n+----------------+--------------------+\n| 3.9 | 4.2, 4.1, 4.0, 3.2 |\n+----------------+--------------------+\n| 3.8 | 4.2, 4.1, 4.0, 3.2 |\n+----------------+--------------------+\n\n\nInstallation\n------------\n\nInstall using ``pip`` \u2026\n\n::\n\n pip install django-js-reverse\n\n\u2026 or clone the project from github.\n\n::\n\n git clone https://github.com/ierror/django-js-reverse.git\n\nAdd ``'django_js_reverse'`` to your ``INSTALLED_APPS`` setting.\n\n::\n\n INSTALLED_APPS = (\n ...\n 'django_js_reverse',\n )\n\n\nUsage with webpack\n------------------\n\nInstall using ``npm``\n\n::\n\n npm install --save django-js-reverse\n\n\nInclude none-cached view \u2026\n\n::\n\n urlpatterns = patterns('',\n url(r'^jsreverse.json$', 'django_js_reverse.views.urls_json', name='js_reverse'),\n )\n\n\u2026 or a cached one that delivers the urls JSON\n\n::\n\n from django_js_reverse import views\n urlpatterns = patterns('',\n url(r'^jsreverse.json$', cache_page(3600)(views.urls_json), name='js_reverse'),\n )\n\nInclude JavaScript in your bundle:\n\n::\n\n // utils/djangoReverse.mjs\n import _ from 'lodash/fp';\n import djangoJsReverse from 'django-js-reverse';\n\n export default _.once(\n async () => {\n const res = await fetch('/jsreverse.json');\n const data = await res.json();\n return djangoJsReverse(data);\n }\n )\n\n::\n\n // somePlace.mjs\n import djangoReverse from './utils/djangoReverse';\n\n (async () => {\n const urls = await djangoReverse();\n const url = urls.someViewName('some-arg');\n ...\n })();\n\n\nUsage as static file\n--------------------\n\nFirst generate static file by\n\n::\n\n ./manage.py collectstatic_js_reverse\n\nIf you change some urls or add an app and want to update the reverse.js file,\nrun the command again.\n\nAfter this add the file to your template\n\n::\n\n <script src=\"{% static 'django_js_reverse/js/reverse.js' %}\"></script>\n\n\nUsage with views\n----------------\n\nInclude none-cached view \u2026\n\n::\n\n urlpatterns = patterns('',\n url(r'^jsreverse/$', 'django_js_reverse.views.urls_js', name='js_reverse'),\n )\n\n\u2026 or a cached one that delivers the urls javascript\n\n::\n\n from django_js_reverse.views import urls_js\n urlpatterns = patterns('',\n url(r'^jsreverse/$', cache_page(3600)(urls_js), name='js_reverse'),\n )\n\nInclude javascript in your template\n\n::\n\n <script src=\"{% url js_reverse %}\" type=\"text/javascript\"></script>\n\nor, if you are using Django > 1.5\n\n::\n\n <script src=\"{% url 'js_reverse' %}\" type=\"text/javascript\"></script>\n\n\nUsage as template tag\n_____________________\n\nYou can place the js_reverse JavaScript inline into your templates,\nhowever use of inline JavaScript is not recommended, because it\nwill make it impossible to deploy a secure Content Security Policy.\nSee `django-csp <https://django-csp.readthedocs.io/>`__\n\n::\n\n {% load js_reverse %}\n\n <script type=\"text/javascript\" charset=\"utf-8\">\n {% js_reverse_inline %}\n </script>\n\n\nUse the urls in javascript\n--------------------------\n\nIf your url names are valid javascript identifiers ([$A-Z\\_][-Z\\_$]\\*)i\nyou can access them by the Dot notation:\n\n::\n\n Urls.betterlivingGetHouse('house', 12)\n\nIf the named url contains invalid identifiers use the Square bracket\nnotation instead:\n\n::\n\n Urls['betterliving-get-house']('house', 12)\n Urls['namespace:betterliving-get-house']('house', 12)\n\nYou can also pass javascript objects to match keyword aguments like the\nexamples bellow:\n\n::\n\n Urls['betterliving-get-house']({ category_slug: 'house', entry_pk: 12 })\n Urls['namespace:betterliving-get-house']({ category_slug: 'house', entry_pk: 12 })\n\nOptions\n-------\n\nOptionally, you can overwrite the default javascript variable \u2018Urls\u2019 used\nto access the named urls by django setting\n\n::\n\n JS_REVERSE_JS_VAR_NAME = 'Urls'\n\nOptionally, you can change the name of the global object the javascript variable\nused to access the named urls is attached to. Default is :code:`this`\n\n::\n\n JS_REVERSE_JS_GLOBAL_OBJECT_NAME = 'window'\n\n\nOptionally, you can disable the minfication of the generated javascript file\nby django setting\n\n::\n\n JS_REVERSE_JS_MINIFY = False\n\n\nBy default all namespaces are included\n\n::\n\n JS_REVERSE_EXCLUDE_NAMESPACES = []\n\nTo exclude any namespaces from the generated javascript file, add them to the `JS_REVERSE_EXCLUDE_NAMESPACES` setting\n\n::\n\n JS_REVERSE_EXCLUDE_NAMESPACES = ['admin', 'djdt', ...]\n\nIf you want to include only specific namespaces add them to the `JS_REVERSE_INCLUDE_ONLY_NAMESPACES` setting\ntips:\n* Use \"\" (empty string) for urls without namespace\n* Use \"foo\\0\" to include urls just from \"foo\" namaspace and not from any subnamespaces (e.g. \"foo:bar\")\n\n::\n\n JS_REVERSE_INCLUDE_ONLY_NAMESPACES = ['poll', 'calendar', ...]\n\nIf you run your application under a subpath, the collectstatic_js_reverse needs to take care of this.\nDefine the prefix in your django settings:\n\n::\n\n JS_REVERSE_SCRIPT_PREFIX = '/myprefix/'\n\nBy default collectstatic_js_reverse writes its output (reverse.js) to your project's STATIC_ROOT.\nYou can change the output path:\n\n::\n\n JS_REVERSE_OUTPUT_PATH = 'some_path'\n\n\nRunning the test suite\n----------------------\n\n::\n\n tox\n\nLicense\n-------\n\n`MIT <https://raw.github.com/ierror/django-js-reverse/master/LICENSE>`__\n\n\nSupport\n-------\n\nThis project is currently maintained by `Vinta Software <https://vintasoftware.com>`__. If you need support please contact us on `contact@vintasoftware.com <mailto:contact@vintasoftware.com>`__.\n\n--------------\n\nEnjoy!\n\n\n0.10.2 (2023-08-14)\n---------------------\n\n- Drop support to older version of Python and Django that aren't being officially supported anymore.\n\n0.10.1b1 (2023-08-14)\n---------------------\n\n- Update for Django 4.0 and 4.1, Python 3.8, 3.9, 3.10\n\n0.10.1a1 (2023-08-14)\n---------------------\n\n- Update pypi deploy username and token\n\n\n0.10.1a (2019-08-02)\n--------------------\n\n- support webpack and other bundlers\n\n\n0.10.0 (2019-08-01)\n-------------------\n\n- deprecate django_js_reverse.VERSION. It will now always be ``(0, 9, 2)``\n- deprecate js_reverse_inline\n- use setuptools.setup\n\n0.9.1\n-----\n\n- Fix: avoid XSS introduced in 0.9.0 when using js_reverse_inline. A low threat as content injected is likely to be trusted input from the urlconfig.\n\n0.9.0\n-----\n\n- New: Support for Python 3.7\n- New: Support for Django 2.2\n- New: Unit Tests Script prefix with no slash, changed URL Conf`#72 <https://github.com/ierror/django-js-reverse/issues/72>`__\n Thank you `graingert <https://github.com/graingert>`__\n- Fix: \"ROOT_URLCONF not taken into account\" `#73 <https://github.com/ierror/django-js-reverse/issues/73>`__ `#74 <https://github.com/ierror/django-js-reverse/issues/74>`__\n Thank you `LuukOost <https://github.com/LuukOost>`__ and `graingert <https://github.com/graingert>`__\n- Refactoring: \"move template logic to view\" `#64 <https://github.com/ierror/django-js-reverse/issues/64>`__\n Thank you `graingert <https://github.com/graingert>`__\n- Fix: \"Now using LooseVersion instead of StrictVersion to avoid issues with rc releases\" `#67 <https://github.com/ierror/django-js-reverse/issues/64>`__\n Thank you `kavdev <https://github.com/kavdev>`__\n\n0.8.2\n-----\n\n- Fix: A bug fix in Django 2.0.6 has broken django-js-reverse `#65 <https://github.com/ierror/django-js-reverse/issues/65>`_\n Thank you `kavdev <https://github.com/kavdev>`_\n\n0.8.1\n-----\n\n- Fix: The tests folder of the `#53 <https://github.com/ierror/django-js-reverse/issues/53>`__ was still present in the build. => Added cleanup to the release make command.\n\n0.8.0\n-----\n\n- New: Support for Django 2.0: `#58 <https://github.com/ierror/django-js-reverse/issues/58>`_\n Thank you `wlonk <https://github.com/wlonk>`_\n- Fix: `#53 <https://github.com/ierror/django-js-reverse/issues/53>`__ - Don't install the tests folder as a separate folder. Moved inside the django_js_reverse namespace.\n\n0.7.3\n-----\n\n- New: Support for Django 1.10\n- Chg: Renamed \"production\" branch to \"master\"\n- Fix: `#48 <https://github.com/ierror/django-js-reverse/issues/48>`_ - \"Change False to 'window' in global object name in README.\"\n Thank you `karamanolev <https://github.com/karamanolev>`_\n- Fix: `PR #45 <https://github.com/ierror/django-js-reverse/pull/45>`_ - \"Fix: collectstatic_js_reverse usage message\"\n Thank you `ghedsouza <https://github.com/ghedsouza>`_\n- Fix: `PR #44 <https://github.com/ierror/django-js-reverse/pull/44>`_ - \"Remove duplicate _get_url call\"\n Thank you `razh <https://github.com/razh>`_\n\n0.7.2\n-----\n\n- Fix: `#42 <https://github.com/ierror/django-js-reverse/issues/42>`_ - \"Templatetag js_reverse_inline breaks on Django 1.9\"\n Thank you `tommikaikkonen <https://github.com/tommikaikkonen>`_\n- Optimized imports\n\n0.7.1\n-----\n- Fix: `#41 <https://github.com/ierror/django-js-reverse/issues/41>`_ - make it possible to use number 0 as url argument\n\n0.7.0\n-----\n- New: By default collectstatic_js_reverse writes its output (reverse.js) to your project's STATIC_ROOT. Now You can change settings: JS_REVERSE_OUTPUT_PATH\n Thank you `mjnaderi <https://github.com/ierror/django-js-reverse/pull/36>`__\n- New: Support for Django 1.9\n Thank you `mjnaderi <https://github.com/ierror/django-js-reverse/pull/37>`__\n- New: It's now possible to include specific namespaces only. See JS_REVERSE_INCLUDE_ONLY_NAMESPACES setting for details.\n Thank you BrnoPCmaniak\n\n0.6.1\n-----\n\n- Refactored: Separate the view functionality from the JS generation\n- New: Replaced slimit by rjsmin based on `#33 <https://github.com/ierror/django-js-reverse/pull/33/>`_\n Thank you chripede\n\n0.6.0\n-----\n\n- Fix: `#27 <https://github.com/ierror/django-js-reverse/pull/27>`_\n Thank you michael-borisov\n- New: Support for Keyword-based URL reversing `#30 <https://github.com/ierror/django-js-reverse/pull/30/>`_\n Thank you hyperair\n\n0.5.1\n-----\n\n- Fix: Current ply breaks slimit => force ply==3.4\n\n0.5.0\n-----\n\n- New: Django allows you to have multiple URL patterns with the same name.\n- This release adds support for the featuer.\n Thank you defrex\n- New: Test support for django 1.8\n- New: test for script_prefix without ending slash\n\n0.4.6\n-----\n\n- New: You can change the name (default=this) of the global object the javascript variable used to access the named\n urls is attached to by changing JS_REVERSE_JS_GLOBAL_OBJECT_NAME setting.\n Thank you aumo\n\n0.4.5\n-----\n\n- Fix: If you run your application under a subpath, the collectstatic_js_reverse needs to take care of this. You can\n now define a setting JS_REVERSE_SCRIPT_PREFIX that handles this issue.\n Thank you lizter for reporting the issue\n\n0.4.4\n-----\n\n- Improvement: management command collectstatic_js_reverse throws an error if settings.STATIC_ROOT is not set\n- Tests: exluded a debug print from coverage\n- Removed: support for django 1.4\n- New: Templatetag to include js-reverse-js inline in your templates\n\n0.4.3\n-----\n\n- New: Add better support for django rest framework\n Django rest framework generates url names like user-list, so it get's converted now as well so\n ``Urls['user-list']()`` or the cleaner ``Urls.user_list()`` are both usable.\n- Fix: JSReverseStaticFileSaveTest is working and being tested again\n- Improvement: Cleanup Javascript\n Thank you bulv1ne for the pull request\n- New: Test support for the latest pypy versions pypy3-2.4.0 and pypy-2.5.0\n- Fix: Get rid of test warning \"MIDDLEWARE_CLASSES is not set.\" for Django >= 1.7\n\n0.4.2\n-----\n\n- Provided PyPI wheel Package\n\n0.4.1\n-----\n\n- Fix: collectstatic runner: moved to own management command collectstatic_js_reverse\n\n0.4.0\n-----\n\n- Add ability to save in file::\n\n <script src=\"{% static 'django_js_reverse/js/reverse.js' %}\"></script>``\n\n to do this run ./manage.py collectstatic\n\n Add JS_REVERSE_EXCLUDE_NAMESPACES option\n to exclude namespaces from import\n default is []\n\n To exclude e.g. admin and Django Debug Toolbar::\n\n JS_REVERSE_EXCLUDE_NAMESPACES = ['admin', 'djdt']\n\n Thank you Andertaker\n\n0.3.4\n-----\n\n- New: Support for nested namespaces. Thank you hyperair\n- New: Support for arguments within namespace path. Thank you hyperair\n- New: Support for optional url arguments. Thank you hyperair\n\n0.3.3\n-----\n\n- New: Django 1.7 support\n\n0.3.2\n-----\n\n- New: Default minification of the generated javascript file\n- Fix: content type of the jsreverse script. Thank you @emcsween\n- Testing: Use selenium for better testing\n\n0.3.1\n-----\n\n- Added support for namespaces\n\n0.3.0\n-----\n\n- Test support for pypy, python 3.4, django 1.6\n- Refactored include of JS_REVERSE_JS_VAR_NAME js var name\n- Get rid of \"DeprecationWarning: The mimetype keyword argument is depracated, use content_type instead\"\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Javascript url handling for Django that doesn't hurt.",
"version": "0.10.2",
"project_urls": {
"Download": "http://pypi.python.org/pypi/django-js-reverse/",
"Homepage": "https://github.com/ierror/django-js-reverse"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "dd43802aed629f651a922a5a6f4932fa5dff5b5324b6e6f0e3054f4edb483134",
"md5": "613247acb652d1b6103bec6ed42e483c",
"sha256": "f17b328028a91f25ce2b8142e5e55b6622d0ab332324c7fd34aa002955f85a2d"
},
"downloads": -1,
"filename": "django_js_reverse-0.10.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "613247acb652d1b6103bec6ed42e483c",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 24535,
"upload_time": "2023-08-14T22:40:30",
"upload_time_iso_8601": "2023-08-14T22:40:30.483739Z",
"url": "https://files.pythonhosted.org/packages/dd/43/802aed629f651a922a5a6f4932fa5dff5b5324b6e6f0e3054f4edb483134/django_js_reverse-0.10.2-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "98371d8c8a9f9de2588df8f18b36f6a3e4134e362f49a14d0c9b0b02a301ef9e",
"md5": "525cd56c33708fce8ad3ea6caf1b122b",
"sha256": "ac1664397935ed45ef1e23a80e6df182d766f4559d6dffd049beac92e63bce20"
},
"downloads": -1,
"filename": "django-js-reverse-0.10.2.tar.gz",
"has_sig": false,
"md5_digest": "525cd56c33708fce8ad3ea6caf1b122b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 25031,
"upload_time": "2023-08-14T22:40:32",
"upload_time_iso_8601": "2023-08-14T22:40:32.160337Z",
"url": "https://files.pythonhosted.org/packages/98/37/1d8c8a9f9de2588df8f18b36f6a3e4134e362f49a14d0c9b0b02a301ef9e/django-js-reverse-0.10.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-14 22:40:32",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ierror",
"github_project": "django-js-reverse",
"travis_ci": true,
"coveralls": true,
"github_actions": true,
"tox": true,
"lcname": "django-js-reverse"
}