如何在Django中存储前导零的整数

12 投票
2 回答
5894 浏览
提问于 2025-04-16 00:08

我想在Django中存储一个看起来像这样的数字:

000001

我的问题是,如果我把这个数字放在一个整数字段(IntegerField)里,它会变成“1”,前面的零都没了。我也试过用小数字段(DecimalField),结果也是一样。有没有办法在不使用字符字段(CharField)的情况下存储前面的零?(我需要以整数的形式处理这个数字)

2 个回答

2

我觉得你应该使用一个字符字段(CharField),然后可以这样做:

try:
    value = int(field)
    # do something with value
except valueError:
    # raise a ValidationError if you are in the *clean* methods of the form
    # or raise an other exception
    # or handle the error
    # or just raise :-)
21

不要把它存储为带有前导零的形式。应该在输出的时候进行格式化:

(in view: value = 1)
{{ value|stringformat:"04d" }} # displays as 0001

撰写回答