2013-06-24 41 views

回答

4

我总是使用一个简单的CharField,因为不同地区和国家的电话号码差别很大。根据手机上的数字键盘,有些人甚至可能使用字符而不是数字。

也许为国家/地区前缀添加一个Choicefield是一个好主意,但这就像我一样。

我永远不会检查电话号码字段中的任何“无效”数据,如破折号,空格等,因为您的用户可能不喜欢接收错误消息,因为它根本不提交电话号码。

毕竟一个电话号码将由您的办公室的人拨打。他们可以 - 也应该 - 亲自验证号码。

+1

严,随着时间的推移我得到这个习惯太...谢谢 –

3

我将电话号码存储在CharField中,并使用phonenumbers进行验证。在表格中,我允许用户以任何他想要的方式输入数字,然后使用phonenumbers lib解析,格式化并验证它。

1

您还可以使用“本地风味”插件,它定义了许多不同国家/地区的自定义字段。如果您希望只有一个国家的电话号码,这将非常有用。 请注意,在Django 1.4和1.5之间,本地风格的实现发生了很大变化,因此请注意阅读正确的文档。它是在1.5之前内置的,现在它是一个外部包。

For U.S. phone numbers (django 1.4)
For U.S. phone numbers (django 1.5)

相关问题