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