首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IntegerField Django的max_digits

IntegerField Django的max_digits
EN

Stack Overflow用户
提问于 2017-11-07 08:14:14
回答 2查看 3.3K关注 0票数 2

我正在寻找一种方法来指定一个IntegerField,使其具有一定的最大位数。我正在寻找的是类似于CharField的max_length。我已经在互联网上甚至在这个论坛上搜索过,但它们都是与添加最小值和最大值相关的答案,例如min_length和max_length,或者添加验证器。为了不让它们混淆,我感兴趣的是建立一个最大位数而不是最大值的IntegerField。有没有一个函数可以提供给我,以便在模型中可以将参数添加到这个IntegerField中?

例如:code = models.IntegerField('Code', primary_key=True, max_digits=8)

EN

回答 2

Stack Overflow用户

发布于 2017-11-07 08:20:51

这就是DecimalField的作用。

代码语言:javascript
复制
code = models.DecimalField(max_digits=8, decimal_places=0, ...)
票数 0
EN

Stack Overflow用户

发布于 2017-11-07 08:32:42

由于您使用的是基数小数,我假设基数为10,但您可以使用对数属性来确定这一点。log()不是最精确的函数,所以你必须四舍五入才能得到正确的数字(我在高中学到的有趣的技巧,如果你想四舍五入,加0.5,然后截断)。因此,这将是一个返回可用于验证的位数的函数,如果它不是基数10,则只需指定base=whatever

代码语言:javascript
复制
def digits(num, base=10):
    print(int(math.log(num, base) + 1.5))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47147964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档