デバッガでこのエラーが表示されますが、実際にこのエンドポイントから返される応答は正しいです。 DBからシリアライザに既存のオブジェクトを渡すと、このエラーが発生します(コードサンプルの下に表示されています)。これは、POSTデータを取得してオブジェクトがDBに存在するかどうかを確認するcreate APIビューです。それが存在する場合はそのオブジェクトを返し、そうでなければオブジェクトを作成します。シリアライザにオブジェクトを渡すと、シリアライザに<class>のreprを取得できません。MyModel.serializers.MyModelSerializer '>
class CreateMyModel(generics.ListCreateAPIView):
serializer_class = MyModelSerializer
queryset = MyModel.objects.all()
permission_classes = (IsAuthenticated,)
authentication_classes = (JSONWebTokenAuthentication,)
def post(self, request, *args, **kwargs):
try:
obj = MyModel.objects.get(uuid=request.data.get('uuid'))
serializer = self.get_serializer(obj) <-- *serializer: Unable to get repr for <class 'MyModel.serializers.MyModelSerializer'>*
return Response(serializer.data, status=status.HTTP_200_OK)
except ObjectDoesNotExist:
return self.create(request, *args, **kwargs)
class MyModel(models.Model):
uuid = models.UUIDField(primary_key=True)
field1 = models.TextField()
field2 = models.ForeignKey(SomeOtherModel)
def __str__:
return str(self.uuid)
シリアライザを追加できますか? –