Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django rest框架序列化详细名称_Django_Serialization_Django Rest Framework - Fatal编程技术网

Django rest框架序列化详细名称

Django rest框架序列化详细名称,django,serialization,django-rest-framework,Django,Serialization,Django Rest Framework,我有一个带有布尔字段的模型: class ExampleModel(User): field_value_one = models.BooleanField(verbose_name=_(u'Field Value One')) ....another boolean fields..... 如何为详细名称序列化编写序列化程序类? 我怎样才能得到这些数据 响应示例: { 'Field Value One' :true, ..... } 或 您可以从模型字

我有一个带有布尔字段的模型:

class ExampleModel(User):
    field_value_one = models.BooleanField(verbose_name=_(u'Field Value One'))
    ....another boolean fields.....  
如何为详细名称序列化编写序列化程序类? 我怎样才能得到这些数据

响应示例:

{
    'Field Value One' :true,
    .....
} 


您可以从模型字段详细信息中获取详细名称。序列化程序方法字段的示例:

from rest_framework import serializers
from .models import ExampleModel

class ExampleModelSerializer(serializers.ModelSerializer):
    field_value_one = serializers.SerializerMethodField()

    class Meta(object):
        model = ExampleModel

    def get_field_value_one(self, obj):
        # get model field
        field = next(f for f in obj._meta.fields if f.name == 'field_value_one')
        return {
            'verbose_name': field.verbose_name.title(),
            'value': obj.field_value_one
        }

你能举例说明你希望序列化的数据是什么样子的吗?请使用编辑链接,而不是在注释中提供基本的细节。模型包含大约10个相同的字段。我可以为所有字段编写一个方法吗?
from rest_framework import serializers
from .models import ExampleModel

class ExampleModelSerializer(serializers.ModelSerializer):
    field_value_one = serializers.SerializerMethodField()

    class Meta(object):
        model = ExampleModel

    def get_field_value_one(self, obj):
        # get model field
        field = next(f for f in obj._meta.fields if f.name == 'field_value_one')
        return {
            'verbose_name': field.verbose_name.title(),
            'value': obj.field_value_one
        }