2016-10-17 6 views
1

Ich bin neu in Django (und Python) und ich versuche, Hexadezimalzahlen zu verwenden. Ich habe ein Modell, in dem ich ein positivesIntegerField verwende. Aber ich möchte Zahlen wie 0x0000 in das Formular eingeben und auch als Hex anzeigen, wenn ich die Tabelle aufliste. Wo soll ich dieses Verhalten haben? Ein benutzerdefiniertes Widget, ein Manager, eine Meta-Unterklasse? Ich muss so viel lernen (oh yeah baby!), Aber so wenig Zeit. Ein wenig Hilfe wissen, wo suchen würde :)Wie hex Zahlen in Django zu verwenden

Dank

+0

Verwenden Django CharField den Hex-Wert zu speichern. – Rajesh

Antwort

2

So schätzen, wenn Sie die Benutzer wollen eine Zahl wie 0x04 einreichen, werden Sie diejenigen, die als Zeichenfolgen senden müssen. Am hinteren Ende, analysieren sie als Basis-16 integer:

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

speichern sie auf dem Modell, tut Basis hier keine Rolle:

your_model.number = n 

Bei der Anzeige, verwenden Sie einfach hex():

print hex(your_model.number) 
=> 0x4 

print hex(15) 
=> "0xf" 

Oder besser, das "% x" Formatierer verwenden:

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

, die Sie Pad, um die Zahl mit Nullen ermöglicht ...

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