Django rest framework django rest框架:在序列化程序中如何同时显示字段属性

Django rest framework django rest框架:在序列化程序中如何同时显示字段属性,django-rest-framework,Django Rest Framework,我有一个模型: class Ingredient(models.Model): KILOGRAM = 'kg' LITER = 'ltr' PIECES = 'pcs' MUNITS_CHOICES = ( (KILOGRAM, 'Kilogram'), (LITER, 'Liter'), (PIECES, 'Pieces'), ) name = models.CharField(max_lengt

我有一个模型:

class Ingredient(models.Model):
    KILOGRAM = 'kg'
    LITER = 'ltr'
    PIECES = 'pcs'
    MUNITS_CHOICES = (
        (KILOGRAM, 'Kilogram'),
        (LITER, 'Liter'),
        (PIECES, 'Pieces'),
    )

    name = models.CharField(max_length=200,unique=True,null=False)
    slug = models.SlugField(unique=True)
    munit = models.CharField(max_length=10,choices=MUNITS_CHOICES,default=KILOGRAM)
    rate = models.DecimalField(max_digits=19, decimal_places=2,validators=[MinValueValidator(0)],default=0)
    typeofingredient = models.ForeignKey(TypeOfIngredient, related_name='typeof_ingredient',null=True, blank=True,on_delete=models.PROTECT)
    density_kg_per_lt = models.DecimalField(max_digits=19, decimal_places=2,verbose_name='Density (kg/lt)',null=True,blank=True,validators=[MinValueValidator(0)])
    density_pcs_per_kg = models.DecimalField(max_digits=19, decimal_places=2,verbose_name='Density (pcs/kg)',null=True,blank=True,validators=[MinValueValidator(0)])
    density_pcs_per_lt = models.DecimalField(max_digits=19, decimal_places=2,verbose_name='Density (pcs/lt)',null=True,blank=True,validators=[MinValueValidator(0)])
    updated = models.DateTimeField(auto_now=True, auto_now_add=False)
    timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)
当我得到api时,我还想得到诸如char、decimal、datetime等字段类型

可能会出现类似以下api结果的情况。因为我使用reactJs作为前端,所以我已经告诉输入它可以接受哪种类型的字段,并帮助按文本或数字排序

{
      "id": {value: 1,type: number},
      "name": {value: "adark",type: charfield},
      "rate": {value: "12.00",type: decimal},
      "updated": {value: "2017-07-14T10:51:47.847171Z",type: datetime},
     .......so on
}

相应的序列化程序如下所示:

class IngredientSerializer(serializers.ModelSerializer):
    name = serializers.SerializerMethodField()
    rate = serializers.SerializerMethodField()
    updated = serializers.SerializerMethodField()

    class Meta:
        model = Ingredient
        fields = ('name', 'rate', 'updated')

    def get_name(self, obj):
        response = dict()
        response['value'] = obj.name
        response['type'] =  obj.name.get_internal_type()
        return Response(response)

    def get_rate(self, obj):
        response = dict()
        response['value'] = obj.rate
        response['type'] =  obj.rate.get_internal_type()
        return Response(response)

    def get_updated(self, obj):
        response = dict()
        response['value'] = obj.updated
        response['type'] =  obj.updated.get_internal_type()
        return Response(response)

我想你想要这个…你能告诉我序列化程序类将如何实现这一点吗