Django rest framework 是否可以重命名django restframework中的字段

Django rest framework 是否可以重命名django restframework中的字段,django-rest-framework,Django Rest Framework,我的python代码有一些名为field\u name的字段,这对于python来说很好,并且可以与Django一起使用 许多Javascript linter希望您将其命名为fieldName,否则他们会对您抱怨很多 为了在两者之间找到一个很好的共同点,我编写了如下序列化程序 class MySerializer(serializers.ModelSerializer): fieldName = serializers.WritableField(source='field_name'

我的python代码有一些名为
field\u name
的字段,这对于python来说很好,并且可以与Django一起使用

许多Javascript linter希望您将其命名为fieldName,否则他们会对您抱怨很多

为了在两者之间找到一个很好的共同点,我编写了如下序列化程序

class MySerializer(serializers.ModelSerializer):
    fieldName = serializers.WritableField(source='field_name', required=True)
    class Meta:
        model = Widget
        exclude = ('field_name',)
问题是,这并没有用fieldName替换field_name的外部表示形式,而是同时发送fieldName和field_name。所以我告诉它排除('field_name')。然后,当您试图保存时,它会非常不安,因为字段名称不存在,或者字段名称不是对象的成员


我原以为映射是一种很好的方法,但事实并非如此。是否有办法从python->javascript映射名称,使代码两端看起来都很漂亮?

您的代码应该可以工作。因此,示例中缺少了一些内容

想到的是您的
字段
值-您在那里指定了什么?通常,最好明确指定您想要的字段,而不是使用
exclude
——设置(可能)需要更长的时间,但从长远来看可以节省时间

如果
fieldName
包含在
fields
中,而
field\u name
不包含,我希望您的代码能够正常工作

(如果这还不能解决问题,也许可以多展示一些。)

编辑问题后更新

嗯。对您应该指定所需的字段。您的
fieldName
充当一个额外字段,其源代码为
field\u name
——例如,当使用SerializerMethodField时,这类内容非常有用

更新:额外解决方案


有一个。此链接指向一个。发现了一个在json级别处理它的包:


文档非常稀疏,但它似乎可以工作,并且集成它很简单(这可能解释了稀疏的文档)。

我将代码更新为我正在使用的代码。除非有排除行,否则我将在输出中同时获得fieldName和field_name。很高兴知道我在这件事上没有偏离底线。糟糕的是,我们没有python的插件。。。。