ajax views
1.0.0
JavaScript로 AJAX 뷰를 쉽게 사용할 수 있는 간단한 Django 애플리케이션입니다.
django
>= 3.2python
>= 3.9 Pip을 통해 패키지를 설치합니다.
pip install ajax-views
INSTALLED_APPS
목록에 추가하세요:
INSTALLED_APPS = (
# ...
"ajax_views" ,
# ...
)
URLconf에 ajax_views.urls
추가하세요:
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를 사용하는 경우에는 이 작업을 수행할 필요가 없습니다.
ajax_url
이 전역 함수라는 점을 제외하면 사용법은 Django와 유사합니다.
< form action = " {{ ajax_url('myapp.form') }} " method = " post " >
...
</ form >