Aplikasi Django sederhana untuk dengan mudah menggunakan tampilan AJAX dengan JavaScript.
django >= 3.2python >= 3.9 Instal paket melalui Pip:
pip install ajax-views
Tambahkan ke daftar INSTALLED_APPS Anda:
INSTALLED_APPS = (
# ...
"ajax_views" ,
# ...
) Tambahkan ajax_views.urls ke URLconf Anda:
from django . urls import include , path
urlpatterns = [
path ( "ajax/" , include ( "ajax_views.urls" )),
]Gunakan dekorator ini untuk mendaftarkan pandangan Anda (Berbasis Fungsi atau Berbasis Kelas).
from ajax_views . decorators import ajax_view
@ ajax_view ( "myapp.form" )
def form_view ( request ):
...
@ ajax_view ( "myapp.form_cbv" )
class AjaxFormView ( FormView ):
...CATATAN : Nama yang ditentukan harus unik.
Anda dapat menggabungkan ajax_view dengan dekorator lain:
@ csrf_exempt
@ require_POST
@ ajax_view ( "myapp.contact_form" )
def csrf_exempt_view ( request ):
# ... Tag templat untuk menampilkan URL terdaftar sebagai JSON.
{% load ajax_views %}
<script>
window.ajax_views = {% ajax_views_json %};
</script>
Sekarang Anda dapat menggunakan objek yang dideklarasikan untuk merujuk ke url terkait seperti ini:
$ . ajax ( {
url : window . ajax_views . myapp . form ,
...
} ) ; Tag ini digunakan untuk menambahkan URL AJAX di file template:
{% load ajax_views %}
<form action="{% ajax_url 'myapp.form' %}" method="post">
...
</form>
Anda dapat memiliki beberapa nama untuk tampilan yang sama:
from ajax_views . decorators import ajax_view
@ ajax_view ([ "myapp.form" , "myapp.fallback" ])
def example_view ( request ):
...Aktifkan ekstensi Jinja2
TEMPLATES = [
{
"BACKEND" : "django.template.backends.jinja2.Jinja2" ,
"OPTIONS" : {
"extensions" : [
# ...
"ajax_views.templatetags.ajax_views.AjaxViewsExtension" ,
]
}
}
]CATATAN : Jika Anda menggunakan Django-jinja, Anda tidak perlu melakukan ini.
Penggunaannya mirip dengan Django, hanya saja ajax_url adalah fungsi global:
< form action = " {{ ajax_url('myapp.form') }} " method = " post " >
...
</ form >