Django_Rest_Framework序列化程序字段的“源”属性不起作用

时间:2018-08-15 08:40:57

标签: django django-rest-framework

我正在尝试构建一个DRF序列化程序,该字段对字段使用的名称与基础Django模型不同。我以为这就是“源”属性的目的。

以下是一些代码:

models.py:

class MyModel(models.Model):     
    my_snake_case_field = models.DateTimeField()

serializers.py

class MySerializer(serializers.ModelSerializer):

    class Meta:
        model = MyModel
        fields = ('id', 'myCamelCaseField', )

        myCamelCaseField = serializers.DateTimeField(source='my_snake_case_field')

但是当我尝试查看时,出现以下错误:

  

在/ api / mymodel / 1 /上配置不正确字段名称myCamelCaseField   对于模型MyModel无效。

有什么想法我要去哪里吗?

2 个答案:

答案 0 :(得分:2)

这可能是 Indentation 错误,它不应该在Meta类之内

class MySerializer(serializers.ModelSerializer):
    myCamelCaseField = serializers.DateTimeField(source='my_snake_case_field')

    class Meta:
        model = MyModel
        fields = ('id', 'myCamelCaseField',)

答案 1 :(得分:0)

例如尝试一下:

现在,您已经在调用myCamelCaseField之前对其进行了分配。

class MySerializer(serializers.ModelSerializer):

    myCamelCaseField = serializers.DateTimeField(source='my_snake_case_field')
    class Meta:
        model = MyModel
        fields = ('id', 'myCamelCaseField', )