我可以在Django Rest框架中使用带空格的字段名吗?
有没有办法将Django Rest Framewok SerializerFields的名称重新映射到包含空格的字符串 我有以下代码: 型号。py:我可以在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
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
,如下所示: