【发布时间】:2017-10-08 18:58:09
【问题描述】:
我必须为 django rest 框架应用程序序列化数据,其中一些值将采用巴西货币格式,例如 1.234,45。
如何绑定这些数字以使用 django rest 序列化程序和 django 模型
我的模特:
class Produto(models.Model):
prod_codigo = models.AutoField(db_column='prod_codigo', primary_key=True)
prod_alias = models.CharField(db_column='prod_alias', max_length=50, null=False)
prod_descricao = models.CharField(db_column='prod_descricao', max_length=255, null=False)
prod_valor_venda = models.DecimalField(db_column='prod_valor_venda', max_digits=13, decimal_places=2)
prod_valor_compra = models.DecimalField(db_column='prod_valor_compra', max_digits=13, decimal_places=2)
prod_peso_b = models.DecimalField(db_column='prod_peso_b', max_digits=13, decimal_places=2)
prod_peso_l = models.DecimalField(db_column='prod_peso_l', max_digits=13, decimal_places=2)
我的序列化器:
class ProdutoSerializer(serializers.Serializer):
prod_codigo = serializers.IntegerField(read_only=True)
prod_alias = serializers.CharField(required=False, allow_blank=True)
prod_descricao = serializers.CharField(required=True, allow_blank=True)
prod_valor_venda = serializers.DecimalField(max_digits=13, decimal_places=2)
prod_valor_compra = serializers.DecimalField(max_digits=13, decimal_places=2)
prod_peso_b = serializers.DecimalField(max_digits=13, decimal_places=2)
prod_peso_l = serializers.DecimalField(max_digits=13, decimal_places=2)
class Meta:
model = Produto
def create(self, validated_data):
return Produto.objects.create(**validated_data)
def update(self, instance, validated_data):
instance.prod_codigo = validated_data.get('prod_codigo', instance.prod_codigo)
instance.prod_alias = validated_data.get('prod_alias', instance.prod_alias)
instance.prod_descricao = validated_data.get('prod_descricao', instance.prod_descricao)
instance.prod_valor_venda = validated_data.get('prod_valor_venda', instance.prod_valor_venda)
instance.prod_valor_compra = validated_data.get('prod_valor_compra', instance.prod_valor_compra)
instance.prod_peso_b = validated_data.get('prod_peso_b', instance.prod_peso_b)
instance.prod_peso_l = validated_data.get('prod_peso_l', instance.prod_peso_l)
instance.prod_peso_q = validated_data.get('prod_peso_q', instance.prod_peso_q)
instance.save()
return instance
【问题讨论】:
标签: python django django-models django-rest-framework