Django rest framework 是否可以重命名django restframework中的字段
我的python代码有一些名为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'
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的插件。。。。