コード例 #1
0
ファイル: mixins.py プロジェクト: rkorytkowski/oclapi2
 def create(self, request, **kwargs):  # pylint: disable=unused-argument
     if not self.parent_resource:
         return Response(status=status.HTTP_405_METHOD_NOT_ALLOWED)
     permission = HasOwnership()
     if not permission.has_object_permission(request, self,
                                             self.parent_resource):
         return Response(status=status.HTTP_403_FORBIDDEN)
     serializer = self.get_serializer(
         data={
             'mnemonic':
             request.data.get('id'),
             'supported_locales':
             compact(request.data.pop('supported_locales', '').split(',')),
             'version':
             HEAD,
             **request.data,
             **{
                 self.parent_resource.resource_type.lower():
                 self.parent_resource.id
             }
         })
     if serializer.is_valid():
         instance = serializer.save(force_insert=True)
         if serializer.is_valid():
             headers = self.get_success_headers(serializer.data)
             serializer = self.get_detail_serializer(instance)
             return Response(serializer.data,
                             status=status.HTTP_201_CREATED,
                             headers=headers)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
コード例 #2
0
    def get_permissions(self):
        if self.request.method == 'POST':
            return [
                HasOwnership(),
            ]

        return [
            CanViewConceptDictionary(),
        ]