class CreateModelMixin:
    """
    Create a model instance.
    """
    def create(self, request, *args, **kwargs):
        validator = self.get_validator(data=request.DATA, files=request.FILES)

        if validator.is_valid():
            self.check_permissions(request, 'create', validator.object)

            self.pre_save(validator.object)
            self.pre_conditions_on_save(validator.object)
            self.object = validator.save(force_insert=True)
            self.post_save(self.object, created=True)
            instance = self.get_queryset().get(id=self.object.id)
            serializer = self.get_serializer(instance)
            headers = self.get_success_headers(serializer.data)
            return response.Created(serializer.data, headers=headers)

        return response.BadRequest(validator.errors)

    def get_success_headers(self, data):
        try:
            return {'Location': data[api_settings.URL_FIELD_NAME]}
        except (TypeError, KeyError):
            return {}

 

相关文章:

  • 2022-01-04
  • 2022-12-23
  • 2022-12-23
  • 2021-08-14
  • 2021-06-06
  • 2021-11-27
  • 2021-10-04
猜你喜欢
  • 2021-07-07
  • 2021-07-27
  • 2021-12-02
  • 2021-09-05
  • 2021-07-10
  • 2021-11-30
  • 2021-11-14
相关资源
相似解决方案