Django - Где хранятся параметры при запросе PUT / DELETE?

  • variablesAndMethodsLikeThis
  • ClassesLikeThis
  • CONSTANTS_LIKE_THIS
53
задан Cyril N. 14 February 2011 в 06:50
поделиться

1 ответ

Мой подход должен был переопределить функцию отправки, таким образом, я могу установить переменную от использования данных тела QueryDict ()

from django.contrib.auth.mixins import LoginRequiredMixin
from django.http import QueryDict
from django.views.generic import View


class GenericView(View):

    def dispatch(self, request, *args, **kwargs):
        if request.method.lower() in self.http_method_names:
            handler = getattr(self, request.method.lower(), self.http_method_not_allowed)

            # if we have a request with potential body data utilize QueryDict()
            if request.method.lower() in ['post', 'put', 'patch']:
                self.request_body_data = {k: v[0] if len(v)==1 else v for k, v in QueryDict(request.body).lists()}
        else:
            handler = self.http_method_not_allowed
        return handler(request, *args, **kwargs)


class ObjectDetailView(LoginRequiredMixin, GenericView):

    def put(self, request, object_id):
        print("updating object", object_id)
        print(self.request_body_data)

    def patch(self, request, object_id):
        print("updating object", object_id)
        print(self.request_body_data)

0
ответ дан 7 November 2019 в 08:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: