我試圖存儲在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