この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:1
ページ更新者:T
更新日時:2019-06-11 17:38:12

タイトル: ajaxの使用例(POST編)
SEOタイトル: 【django】

今回の例ではページの閲覧数をajaxでカウントアップする。

テンプレートの実装

<a id="{{ page.page_id }}" href="{{ page.link }}" target="_blank" onclick="page_view_countup(this)">

<script>
function
page_view_countup(a) {

    var token = '{{csrf_token}}';
    var page_id = a.id;

    $.ajax({
        'url': '/ajax/page/countup',
       
headers: { "X-CSRFToken": token },
        'type':'POST',
        'data':{
            'page_id': page_id,
        },
        'dataType':'json',
        'success':function(response){
            console.log(response)
        },
    });

}
</script>

 

URLの定義

urlpatterns = [
   
path('ajax/page/countup', PageCountupView.as_view()),
]

 

ビューの定義

from django.http import JsonResponse
from django.views.generic import View
from db_itn.models.page import page

class pageCountupView(View):

    def post(self, request, *args, **kwargs):

        page_id = request.POST['page_id']

        page = page.objects.get(page_id = page_id, delete_flag = 0)
        page.objects.filter(page_id = page_id, delete_flag = 0).update(views = page.views + 1)

        context = {
            # 'page': page,
        }

        return JsonResponse(context)