CastleDweller
CastleDweller

Reputation: 8364

How to store an integer leaded by zeros in django

I'm trying to store a number in django that looks like this:

000001

My problem is that if I type this inside an IntegerField it gets converted to "1" without the leading zeros. I've tried also with a DecimalField with the same result. How can I store the leading zeros whithout using a CharField? (I need to manipulate that number in it's integer form)

Upvotes: 12

Views: 6092

Answers (2)

Daniel Roseman
Daniel Roseman

Reputation: 599490

Don't store it with the leading zeros. Format it on output instead:

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

Upvotes: 21

Ghislain Leveque
Ghislain Leveque

Reputation: 968

I think you should use a CharField and do something like that :

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 :-)

Upvotes: 2

Related Questions