我可以在Django Rest框架中使用带空格的字段名吗?

我可以在Django Rest框架中使用带空格的字段名吗?,django,django-rest-framework,Django,Django Rest Framework,有没有办法将Django Rest Framewok SerializerFields的名称重新映射到包含空格的字符串 我有以下代码: 型号。py: class Author(models.Model): author_name = models.CharField() class AuthorSerializer(serializers.ModelSerializer): class Meta: model = Author fields = ["author_n

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

我有以下代码:

型号。py:

class Author(models.Model):
    author_name = models.CharField()
class AuthorSerializer(serializers.ModelSerializer):
  class Meta:
    model = Author
    fields = ["author_name"]
serialisers.py:

class Author(models.Model):
    author_name = models.CharField()
class AuthorSerializer(serializers.ModelSerializer):
  class Meta:
    model = Author
    fields = ["author_name"]
这将返回JSON,如:

{ "author_name": "William Shakespeare" }
{ "The Author": "William Shakespare" }
但我希望它返回JSON,比如:

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


谢谢。

您可以在序列化程序类中重写
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

这回答了你的问题吗?当时我没有意识到这一点,但我可以使用
extra_-kwargs
,如下所示: