سؤال

لقد كنت أحاول منذ فترة تشغيل "DELETE" عند قراءة مجموعة في Django Api View.لقد كنت أستخدم "ListCreateAPIView" وهذا يوفر فقط معالجات أسلوب الحصول والنشر.هل يعرف اي احد كيفية اصلاح هذا؟

وجهة نظري:

class NotepadDetail(generics.ListCreateAPIView):
    model = Session
    serializer_class = SessionSerializer

    def get_queryset(self):
        user=self.request.user
        notepad = self.kwargs['notepad_pk']
        return Session.objects.filter(user=user, notepad=notepad)

    def pre_save(self, obj):
        obj.user = self.request.user
        obj.notepad = get_object_or_404(Notepad, user=self.request.user, pk=self.kwargs['notepad_pk'])
هل كانت مفيدة؟

المحلول

حلها عن طريق إضافة:

giveacodicetagpre.

نصائح أخرى

يمكنك استخدام أ DestroyModelMixin:

class NotepadDetail(generics.DestroyModelMixin,
                    generics.ListCreateAPIView):
    model = Session
    serializer_class = SessionSerializer

    def get_queryset(self):
        user=self.request.user
        notepad = self.kwargs['notepad_pk']
        return Session.objects.filter(user=user, notepad=notepad)

    def pre_save(self, obj):
        obj.user = self.request.user
        obj.notepad = get_object_or_404(Notepad, user=self.request.user, pk=self.kwargs['notepad_pk'])

    def delete(self, request, *args, **kwargs):
        return self.destroy(request, *args, **kwargs)

ال self.destroy الطريقة المقدمة من DestroyModelMixin سوف يتعامل مع حذف الكائن، وسوف يرفع بشكل صحيح pre_delete و post_delete إشارات، وسوف يعود 204 NO CONTENT حالة.

giveacodicetagpre.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top