1

试图获得在 Django 中存储电话的最佳方式。目前我正在使用 Charfield 并检查它是否是一个数字......

4

3 回答 3

4

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

也许为国家/地区前缀添加一个 Choicefield 是一个好主意,但这是我所能做到的。

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

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

于 2013-06-24T07:55:53.507 回答
3

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

于 2013-06-24T08:03:13.990 回答
1

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

美国电话号码 (django 1.4)
美国电话号码 (django 1.5)

于 2013-06-24T20:31:16.587 回答