[Westagram]:投稿/コメントの削除


課題



コード#コード#


urls.py

from django.urls    import path

from postings.views import PostingView, PostingUpdateView

urlpatterns = [
    path('post',           PostingView.as_view()),
    path('delete/<int:id>',PostingView.as_view()),
    path('post/<int:id>'  ,PostingUpdateView.as_view())
]
from django.urls    import path

from comments.views import (
    CommentsGetView,
    CommentsPostView,
)
urlpatterns = [
    path('post',            CommentsPostView.as_view()),
    path('get/<int:id>',    CommentsGetView.as_view()), #id는 post의 id 기준으로 잡아야 함
    path('delete/<int:id>', CommentsGetView.as_view()),
]
urlを設定するとdeleteの後ろにがあります.
問題のbodyに関連付けられていないものを削除
IDの削除を何回要求すればいいですか.
後ろにidが付いています.
これがrest apiですか?に表示されます.(これもよくわからないので勉強します)

views.py+アクセサリー

    @login_decorator
    def delete(self, request, id) :
        try :
            posting_id = id

            if not Posting.objects.filter(id=posting_id).exists() :
                return JsonResponse({'message':'Posting is not existed'}, status=400)

        except KeyError :
            return JsonResponse({'message':'KEY_ERROR'}, status=400)
        
        Posting.objects.filter(id=posting_id).delete()

        return JsonResponse({'message':'delete ok'}, status=200)
    @login_decorator
    def delete(self, request, id) :
        try :
            comment_id = id

            if not Comment.objects.filter(id=comment_id).exists() :
                return JsonResponse({'message':'삭제할 수 없는 댓글입니다'}, status=400)

        except KeyError :
            return JsonResponse({'message':'KEY_ERROR'})

        Comment.objects.filter(id=comment_id).delete()
        return JsonResponse({'message':'comment delete'}, status=200)
ログインが必要なので、まずlogin decorator関数を実行します.
また、装飾器のパラメータはrest api設定に関連付けられている.
(次の内容は私の考えで、詩の言うとおりに反論します)
一般的なクエリーと登録にはself、requestしか必要ありませんが、変更と削除
特定のオブジェクトを含める必要があります.
例えば、何を修正しますか?何を削除しますか?
だから観点はオブジェクトの変数をpyにインポートする方法です.ここでidです.

def login_decorator(func) :
    def wrapper(self, request, *args, **kwargs) :
装飾器を起動するとself、request、*args、**kwargsの4つの変数をキャプチャしました.
self、requestのみを設定する場合は、deleteメッサーで設定した変数idを
レコーダから受信できないため、エラーが発生しました.
従って、アクセサリーにargs、kwargsを追加パラメータとして宣言する.
いずれにしても、削除した場合、事前に削除した場合は、メッセージを送信するか、削除して終了します.