【问题标题】:Can I have a field name with spaces in Django Rest Framework? [duplicate]我可以在 Django Rest Framework 中使用带空格的字段名称吗? [复制]
【发布时间】:2020-03-31 16:06:24
【问题描述】:

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

我有以下类型的代码:

models.py:

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

serializers.py:

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

这将返回 JSON 格式:

{ "author_name": "William Shakespeare" }

但我希望它返回 JSON 格式:

{ "The Author": "William Shakespare" }

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

谢谢。

【问题讨论】:

标签: django django-rest-framework


【解决方案1】:

您可以在您的序列化程序类中覆盖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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 2015-05-09
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    • 2017-08-26
    相关资源
    最近更新 更多