Serialize models method with parameter in django REST API error " Object of type method is not JSON serializable "

Как сериализовать функцию модели с параметром. Когда я пытаюсь это сделать, получаю ошибку. вот так :
raise TypeError(f'Объект типа {o.class.name} ' TypeError: Метод Object of type не является JSON serializable

models.py

class Post(models.Model):
  title = models.CharField(max_length=150)

  def likes_exist(self,user):
        liked = ""
        for i in self.likes.all():
            if i.user == user:
                liked = liked

            else:
                liked = not liked
        return liked
 

class LikePost(models.Model):
  user = models.ForeignKey(Customer,on_delete=models.CASCADE,related_name='news_likes')
  post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='likes')

views.py

@api_view(["POST"])
def post(request):
  id = request.data["id"]
  user = Customer.objects.filter(id=id)
  post_object = Post()
  post_object.likes_exist(user)
  return PostSerializer #something else

Serializer.py

class PostSerializer(serializers.ModelSerializer):
  class Meta:
        model = Post
        fields  = ["title","likes_exist"]

error:

        Traceback (most recent call last):
  File "/home/shamsucm/.local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/home/shamsucm/.local/lib/python3.8/site-packages/django/core/handlers/base.py", line 204, in _get_response
    response = response.render()
  File "/home/shamsucm/.local/lib/python3.8/site-packages/django/template/response.py", line 105, in render
    self.content = self.rendered_content
  File "/home/shamsucm/.local/lib/python3.8/site-packages/rest_framework/response.py", line 70, in rendered_content
    ret = renderer.render(self.data, accepted_media_type, context)
  File "/home/shamsucm/.local/lib/python3.8/site-packages/rest_framework/renderers.py", line 100, in render
    ret = json.dumps(
  File "/home/shamsucm/.local/lib/python3.8/site-packages/rest_framework/utils/json.py", line 25, in dumps
    return json.dumps(*args, **kwargs)
  File "/usr/lib/python3.8/json/__init__.py", line 234, in dumps
    return cls(
  File "/usr/lib/python3.8/json/encoder.py", line 199, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/usr/lib/python3.8/json/encoder.py", line 257, in iterencode
    return _iterencode(o, 0)
  File "/home/shamsucm/.local/lib/python3.8/site-packages/rest_framework/utils/encoders.py", line 67, in default
    return super().default(obj)
  File "/usr/lib/python3.8/json/encoder.py", line 179, in default
    raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type method is not JSON serializable

как исправить эту ошибку . почему возникает эта ошибка ?

Спасибо

Я думаю, что вы должны создать liked переменную глобально в вашем Post классе модели А в классе PostSerilaizer Meta добавить поле liked вместо likes_exist

Вернуться на верх