首页 > 解决方案 > 我可以在 Django Rest Framework 中使用带空格的字段名称吗?

问题描述

有没有办法将 Django Rest Framewok SerializerFields 的名称重新映射到包含空格的字符串?

我有以下类型的代码:

模型.py:

class Author(models.Model):
    author_name = models.CharField()

序列化器.py:

class AuthorSerializer(serializers.ModelSerializer):
  class Meta:
    model = Author
    fields = ["author_name"]

这将返回 JSON,如:

{ "author_name": "William Shakespeare" }

但我希望它返回 JSON,如:

{ "The Author": "William Shakespare" }

我知道我可以使用kwarg为序列化程序字段使用不同source的名称,但这仍然需要一个有效的 python 名称。我特别想知道是否可以使用带有空格的名称。

谢谢。

标签: djangodjango-rest-framework

解决方案


您可以覆盖to_representation()序列化程序类中的方法。像这样的东西:

class AuthorSerializer(serializers.ModelSerializer):
  class Meta:
    model = Author
    fields = ["author_name"]

  def to_representation(self, obj):
    primitive_repr = super(AuthorSerializer, self).to_representation(obj)
    primitive_repr['The Author'] = primitive_repr['author_name']
    return primitive_repr

推荐阅读