【发布时间】:2015-12-21 21:27:53
【问题描述】:
假设我有这个 CartItem 和 OrderItem 模型:
class CartItem(Model):
price = DecimalField(..)
class OrderItem(Model):
cartitem = OneToOneField('CartItem')
@property
def price(self):
return self.cartitem.price
在使用ModelSerializer并让它隐式确定字段来渲染OrderItem时,价格字段变为浮点类型。
例如。 'price': 10.5 但我期待看到 'price': '10.5'
我需要在序列化程序中明确指定 DecimalField 以生成正确的十进制类型,如下所示:
class OrderItemSerializer(ModelSerializer):
price = DecimalField(...)
我错过了什么吗?
更新:这是我在 github 上提出的问题: Django Rest Framework gives wrong type serializer field type when derived from properties
【问题讨论】:
-
当您没有明确指定字段时,
repr(OrderItemSerializer())会给出什么? -
price = ReadOnlyField() -
你能分享更多细节吗:比如当前输出和想要的输出。
-
@DhiaTN 添加了输出和预期输出
标签: django serialization django-rest-framework