我正在尝试构建一个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
无效。
有什么想法我要去哪里吗?
答案 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', )