6

タイトルがややこしいかもしれませんが、教えてください。

現在、のような生の数字で電話番号を保存しているとき5554441234。次に、テンプレートで、数値を555-444-1234.

Djangolocalflavorには、文字列がフォーマットされているかどうかを確認する米国の電話番号フィールドがあることに気付きました。XXX-XXX-XXXX

だから私の質問は、電話番号を生の数字として入力してからテンプレートでフォーマットするか、 localflavor を使用してフォーマットされた方法で電話番号を入力する必要があるかということです。

後者を選択した場合、フォーマットの制限はレベルまたは Django 管理ページにXXX-XXX-XXXXも適用されますか?database API

4

3 に答える 3

9

入力したとおりに保存し、必要に応じて周囲の空白のみを取り除きます。ユーザーがその数値をフォーマットする方法は、正規化によって失いたくないセマンティック情報を格納します。米国ではこの形式XXX-XXX-XXXXは非常に一般的ですが、他のロケールではまったく異なる形式が使用されています。たとえば、私が住んでいる場所では、いくつかの一般的な形式は次のXX-XXX XXX XXとおりです。XXX/XXX XX XX+46(0)70-XXX XX XX

ユーザーに表示される数値は、入力したものと同じ形式である必要があります。そうしないと、ユーザーが慣れ親しんでいる形式とは異なる形式で書式設定されている場合、番号が改ざんされていると見なされたり、番号を認識さえできなかったりする可能性があります。この議論も参照してください: http://discuss.fogcreek.com/dotnetquestions/default.asp?cmd=show&ixPost=6079&ixReplies=6

于 2012-03-30T10:34:19.557 に答える
2

フォーム フレームワークを使用している場合 (Django admin など)、入力の検証はアプリケーション レベルで行われます。そのため、フォームに電話番号を入力するには、フォーマットする必要がありますXXX-XXX-XXXX

データベース レベルでは、これは単なる であるCharFieldため、データベースは形式のチェックを行いません。

于 2012-03-30T10:33:41.627 に答える
0

Django-phoneno を試してみてください。分野 。Python の Web サイトで入手できます。pip install django-phonenumber-field を使用してインストールする必要があります

https://pypi.python.org/pypi/django-phonenumber-field/0.2a3

于 2014-05-17T15:15:45.117 に答える