Django 일반 보기 (DeleteView) 는 aax를 이용하여 삭제 기능을 수행합니다.

2386 단어 Djangopython
방금 Django틀을 배웠는데 배울 지식이 많을 것 같아서 여기에 몇 가지를 기록해 봅시다.
다음은 항목의 일부 코드를views에 붙입니다.py
@method_decorator(login_required, name='dispatch')
class ArticleDeleteView(DeleteView):
    model = Article
    success_url = reverse_lazy('blog:article_list')

    # def get_object(self, queryset=None):
    #     obj = super(ArticleDeleteView, self).get_object(queryset=queryset)
    #     if obj.author != self.request.user:
    #         raise Http404()
    #     return obj

    def post(self, *args, **kwargs):
        self.object = self.get_object()
        self.object.delete()
        data = {'success': 'OK'}
        return JsonResponse(data)

urls.py
app_name = 'blog'
urlpatterns = [
	...
	re_path(r'^article/(?P\d+)/(?P[-\w]+)/delete$',
	            views.ArticleDeleteView.as_view(), name='article_delete'),
            }

article_list.py 부분 코드

                    

    var csrftoken = $.cookie('csrftoken');

    function csrfSafeMethod(method) {
        return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
    }

    $(document).ready(function () {
        $("tr").on("click", "#ajax_delete", function () {
            var flag = confirm("         ?

!") if (flag) { var pk = $(this).data('id'); var slug1 = $(this).data('slug'); var url = '/blog/article/' + pk + '/' + slug1 + '/delete' $.ajax({ url: url, type: "POST", // POST csrftoken beforeSend: function (xhr, settings) { if (!csrfSafeMethod(settings.type) && !this.crossDomain) { xhr.setRequestHeader("X-CSRFToken", csrftoken); } }, success: function (res) { $('#ajax_delete').parents('tr').remove() } }) } }) })

주요 코드 부분은 이렇습니다. 이쪽은 aax를 통해 일반적인 보기를 통해 기록을 삭제하는 기능을 실현합니다.

좋은 웹페이지 즐겨찾기