在我的表格中:
我的折扣类型是DECIMAL:
表格中的数据:
但是为什么当我在API中获取数据时,会得到字符串?
我使用Django / Django-Rest-Framework作为后端。
修改
belong_product:"实体服务器"
ctime:"2018-04-11T15:41:15.744959+08:00"
desc: ""
discount:"0.005"
id : 1
is_enable :false
max_count:5
min_count:0
name:"基数折扣第一阶"
uptime:"2018-04-11T15:41:15.745226+08:00"
我的ListAPI视图:
class DiscountItemByUserOwnCountListAPIView(ListAPIView):
serializer_class = DiscountItemByUserOwnCountSerializer
permission_classes = [IsSuperAdmin]
pagination_class = CommonPagination
def get_queryset(self):
return DiscountItemByUserOwnCount.objects.all()
我的模特:
class DiscountItemByUserOwnCount(models.Model):
name = models.CharField(max_length=16, help_text="名称")
desc = models.CharField(max_length=512, null=True, blank=True, help_text="描述")
min_count = models.IntegerField(help_text="范围的最小数目")
max_count = models.IntegerField(help_text="范围的最大数目") # 最小~最大 组成范围
discount = models.DecimalField(max_digits=4, decimal_places=3, default=0.000, unique=True,
help_text="折点") # 折点: 0.001
belong_product = models.CharField(max_length=16, help_text="所属产品(DISCOUNT_PRODUCT_TYPE中去选择)")
is_enable = models.BooleanField(default=False, help_text="是否启用")
ctime = models.DateTimeField(auto_now_add=True)
uptime = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
def __unicode__(self):
return self.name
class Meta:
ordering = ['min_count', '-id']
答案 0 :(得分:0)
DRF中的默认十进制表示形式为字符串,要禁用此行为,请将以下内容添加到settings.py:
REST_FRAMEWORK = {
'COERCE_DECIMAL_TO_STRING': False,
# Your other settings
...
}
请参阅docs。
中的详细信息答案 1 :(得分:0)
这是一个字符串,否则你会得到舍入错误。使用Python shell可以很容易地看到这一点:
config.yml
另请注意,JSON没有小数。只有整数和浮点数。