ajax views
1.0.0
แอปพลิเคชัน Django ที่เรียบง่ายเพื่อใช้มุมมอง AJAX กับ JavaScript ได้อย่างง่ายดาย
django
>= 3.2python
>= 3.9 ติดตั้งแพ็คเกจผ่าน Pip:
pip install ajax-views
เพิ่มลงในรายการ INSTALLED_APPS
ของคุณ:
INSTALLED_APPS = (
# ...
"ajax_views" ,
# ...
)
เพิ่ม ajax_views.urls
ใน URLconf ของคุณ:
from django . urls import include , path
urlpatterns = [
path ( "ajax/" , include ( "ajax_views.urls" )),
]
ใช้มัณฑนากรนี้เพื่อบันทึกมุมมองของคุณ (ตามฟังก์ชันหรือตามคลาส)
from ajax_views . decorators import ajax_view
@ ajax_view ( "myapp.form" )
def form_view ( request ):
...
@ ajax_view ( "myapp.form_cbv" )
class AjaxFormView ( FormView ):
...
หมายเหตุ : ชื่อที่ระบุจะต้องไม่ซ้ำกัน
คุณสามารถรวม ajax_view
กับมัณฑนากรอื่น ๆ ได้:
@ csrf_exempt
@ require_POST
@ ajax_view ( "myapp.contact_form" )
def csrf_exempt_view ( request ):
# ...
แท็กเทมเพลตเพื่อส่งออก URL ที่ลงทะเบียนเป็น JSON
{% load ajax_views %}
<script>
window.ajax_views = {% ajax_views_json %};
</script>
ตอนนี้คุณสามารถใช้วัตถุที่ประกาศเพื่ออ้างอิงถึง URL ที่เกี่ยวข้องดังนี้:
$ . ajax ( {
url : window . ajax_views . myapp . form ,
...
} ) ;
แท็กนี้ใช้เพื่อเพิ่ม AJAX URL ในไฟล์เทมเพลต:
{% load ajax_views %}
<form action="{% ajax_url 'myapp.form' %}" method="post">
...
</form>
คุณสามารถมีได้หลายชื่อสำหรับมุมมองเดียวกัน:
from ajax_views . decorators import ajax_view
@ ajax_view ([ "myapp.form" , "myapp.fallback" ])
def example_view ( request ):
...
เปิดใช้งานส่วนขยาย Jinja2
TEMPLATES = [
{
"BACKEND" : "django.template.backends.jinja2.Jinja2" ,
"OPTIONS" : {
"extensions" : [
# ...
"ajax_views.templatetags.ajax_views.AjaxViewsExtension" ,
]
}
}
]
หมายเหตุ : หากคุณใช้ django-jinja คุณไม่จำเป็นต้องทำเช่นนี้
การใช้งานคล้ายกับ Django ยกเว้นว่า ajax_url
เป็นฟังก์ชันส่วนกลาง:
< form action = " {{ ajax_url('myapp.form') }} " method = " post " >
...
</ form >