Как хранить целые числа с нулями в django - PullRequest
8 голосов
/ 18 июня 2010

Я пытаюсь сохранить число в Django, которое выглядит так:

000001

Моя проблема в том, что если я наберу это внутри IntegerField, оно преобразуется в "1" без начальных нулей. Я пробовал также с DecimalField с тем же результатом. Как я могу хранить лидирующие нули без использования CharField? (Мне нужно манипулировать этим числом в целочисленной форме)

Ответы [ 2 ]

17 голосов
/ 18 июня 2010

Не храните его с ведущими нулями. Вместо этого отформатируйте его на выходе:

(in view: value = 1)
{{ value|stringformat:"04d" }} # displays as 0001
1 голос
/ 18 июня 2010

Я думаю, вы должны использовать 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 :-)
...