Formatiert eine nicht dekorierte Telefonnummer in Django?

8

Ich habe einen DB-Block voll mit Telefonnummern als Strings, sie sind alle wie 1112223333 formatiert, ich möchte sie als 111-222-3333 in meiner Django-Vorlage anzeigen

Ich weiß, dass ich es tun kann

%Vor%

Aber gibt es einen besseren / mehr pythonischen Weg?

    
JKirchartz 08.09.2011, 20:41
quelle

5 Antworten

7

Nur eine andere Lösung:

%Vor%

oder

%Vor%     
rumpel 08.09.2011, 21:44
quelle
13

Es kann für Ihren Anwendungsfall ein Overkill sein, wenn alle Ihre Zahlen auf die gleiche Weise formatiert sind, aber Sie könnten die Phonenzahlen Modul. Dadurch können Sie sehr einfach Funktionen (z. B. internationale Telefonnummern, verschiedene Formatierungen usw.) hinzufügen.

Sie können Ihre Zahlen wie folgt analysieren:

%Vor%

Um es dann wie gewünscht zu formatieren, können Sie Folgendes tun:

%Vor%

Beachten Sie, dass Sie problemlos andere Formate verwenden können:

%Vor%     
jterrace 08.09.2011 22:24
quelle
8

Das ist ziemlich verspätet, aber ich dachte, ich würde meine Lösung trotzdem veröffentlichen. Es ist sehr einfach und nutzt die Möglichkeit, eigene Template-Tags zu erstellen (für die Verwendung im gesamten Projekt). Der andere Teil davon verwendet die Klammern um die Ortsvorwahl.

%Vor%

Für den Rest Ihres Projekts müssen Sie nur {{ var|phonenumber }}

eingeben     
Alex Koziak 09.08.2012 18:33
quelle
6

Da wir Pythonic sprechen :), ist es eine gute Angewohnheit Verwenden Sie immer join anstelle von addition ( + ), um Zeichenfolgen zu verknüpfen :

%Vor%     
unutbu 08.09.2011 21:30
quelle
2
%Vor%
  

print formatPhone ('+ 7-111-222-33-44')

     

7 (111) 222-33-44

     

print formatPhone ('222-33-44')

     

222-33-44

     

print formatPhone ('23344')

     

2-33-44

    
Vitaly Fadeev 23.02.2012 05:00
quelle

Tags und Links