我试图存储在Django一些看起来像这样的含铅整数:如何存储由零在Django
000001
我的问题是,如果我键入此一IntegerField里面被转化为“1”没有前导零。我也尝试过与DecimalField相同的结果。如何在不使用CharField的情况下存储前导零? (我需要操作这个数字在它的整数形式)
我试图存储在Django一些看起来像这样的含铅整数:如何存储由零在Django
000001
我的问题是,如果我键入此一IntegerField里面被转化为“1”没有前导零。我也尝试过与DecimalField相同的结果。如何在不使用CharField的情况下存储前导零? (我需要操作这个数字在它的整数形式)
不要将其与前导零存储。格式它输出,而不是:
(in view: value = 1)
{{ value|stringformat:"04d" }} # displays as 0001
我认为你应该使用一个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 :-)
也许是我做错了什么,但我不能这样做INT(models.CharField ....),因为它试图将CharField实例(不是值)转换为一个int – 2010-06-18 13:37:08
Arf是的我认为你做错了什么。也许如果你显示你的代码,我可以跟踪它。 – 2010-06-21 07:20:08
我没有想到这一点。它可能会诀窍,因为我真的需要领先的零在输出,而不是存储在数据库中。 – 2010-06-18 13:57:08
如果您需要存储或处理它: new_val =“%05d”%value – laffuste 2013-03-06 09:15:31
真棒解决问题的方法。 – 2015-08-31 08:37:16