在Django中存储电话号码时,我应该将它们存储为原始数字还是使用django.contrib.localflavor?

hob*_*es3 6 python django django-models django-forms django-contrib

标题可能令人困惑,但请让我解释一下:

目前,当我存储电话号码与原始数字,如5554441234.然后在我的模板中,我将数字"格式化"为类似的东西555-444-1234.

我在Django中意识到localflavor,有一个美国电话号码字段,用于检查字符串是否XXX-XXX-XXXX格式化.

所以我的问题是我应该输入电话号码作为原始数字然后在模板中格式化,还是应该使用localflavor以格式化方式输入电话号码

如果我选择后者,XXX-XXX-XXXX格式限制是否适用于database API级别或Django管理页面?

Bjö*_*ist 9

将它们存储为输入,必要时仅剥离周围的空白区域.用户格式化其编号的方式存储您不希望通过规范化而丢失的语义信息.在美国,格式XXX-XXX-XXXX很常见,但其他语言环境使用完全不同的格式.例如,我住的地方的一些常见的格式有:XX-XXX XXX XX,XXX/XXX XX XX,+46(0)70-XXX XX XX等广告nausem.

显示给用户的号码应与输入的格式相同,否则他或她会认为它是带有号码的,或者如果它的格式与用户习惯的格式不同,甚至可能无法识别.另见此讨论:http://discuss.fogcreek.com/dotnetquestions/default.asp?cmd = show &ixPost = 6079 &ixReplies = 6

  • 关键是你应该**不要试图强制执行它.告诉用户他们应该如何格式化自己的电话号码,这不是您网站的业务. (3认同)