如何在Django中使用十六进制数字

时间:2016-10-17 11:13:17

标签: django python-3.5

我是Django(和python)的新手,我正在尝试使用十六进制数字。我有一个模型,我使用PositiveIntegerField。但我想在表单中输入0x0000之类的数字,并在列出表格时显示为十六进制。我应该在哪里看到这种行为?自定义小部件,管理器,元子类?我有很多东西需要学习(哦,是的宝贝!)但是时间太少了。知道在哪里寻找的一点帮助将不胜感激:)

由于

1 个答案:

答案 0 :(得分:3)

因此,如果您希望用户提交0x04这样的数字,您需要将其作为字符串发送。在后端,将它们解析为基数为16的整数:

# input_string = "0x04"
n = int(input_string, 16)
=> n = 4

将它们存放在模型上,基础并不重要:

your_model.number = n

显示时,只需使用hex()

print hex(your_model.number)
=> 0x4

print hex(15)
=> "0xf"

或者更好地使用"%x"格式化器:

>>> print "%x" % 100
64
>>> print "0x%x" % 100
64

这将允许您用零填充数字......

>>> print "%06x" % 100
000064