A simple Django application to easily use AJAX views with JavaScript.
Project description
ajax-views
A simple Django application to easily use AJAX views with JavaScript.
Compatibility
django
>= 1.8python
>= 3.4
Features
- Ability to expose your AJAX URLs to JavaScript
- Supported Function-Based and Class-Based Views
- One URL pattern
to rule them allfor all AJAX views - Jinja2 support
Installation
Install the package via Pip:
pip install ajax-views
Add it to your INSTALLED_APPS
list:
INSTALLED_APPS = (
...
'ajax_views',
)
Add ajax_views.urls
to your URLconf:
urlpatterns = patterns('',
...
# Django >= 2.0
path('ajax/', include('ajax_views.urls')),
# Django < 2.0
url(r'^ajax/', include('ajax_views.urls', namespace='ajax_views')),
)
Usage
@ajax_view
Use this decorator to register your views (Function-Based or Class-Based).
from ajax_views.decorators import ajax_view
@ajax_view('myapp.form')
def form_view(request):
...
@ajax_view('myapp.form_cbv')
class AjaxFormView(FormView):
...
NOTE: Each view must have a unique name.
{% ajax_url %}
{% load ajax_views %}
<form action="{% ajax_url 'myapp.form' %}" method="post">
...
</form>
{% ajax_views_json %}
Template tag to render registered URLs as JSON.
{% load ajax_views %}
<script>
window.ajax_views = {% ajax_views_json %};
</script>
$.ajax({
url: window.ajax_views.myapp.form,
...
});
Multiple names for the same view
from ajax_views.decorators import ajax_view
@ajax_view(['myapp.form', 'myapp.fallback'])
def example_view(request):
...
Jinja2 support
Enable Jinja2 extension
TEMPLATES = [
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'OPTIONS': {
'extensions': [
...
'ajax_views.templatetags.ajax_views.AjaxViewsExtension',
]
}
}
]
NOTE: If you are using django-jinja, you don't need to do this.
The usage is similar to Django, except that ajax_url
is a global function:
<form action="{{ ajax_url('myapp.form') }}" method="post">
...
</form>
License
Copyright (c) 2018 Mihail Mishakin Released under the BSD license (see LICENSE)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ajax_views-0.3.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 148705e25e2f878a73d934ab28a1670aafb2a24f5188807d9253ca8b74d67ce3 |
|
MD5 | 3d51b4025cdebf31607b911f46fb55b0 |
|
BLAKE2b-256 | fe078550a920becc4deba544d5502144a1afa4c3f8f5c8348a83d4ff24e9ccd0 |