47

私が理解しているように、PostgreSQL データベースを使用する場合は、aと aの速度の違いは PostgreSQL では無視できるTextFieldため、可変長文字列には常に a を使用する必要があります。私は Django に比較的慣れていないので、データベースで可変長の URL を使用することを検討していました。?を使用する利点があるかどうか疑問に思っていました。URL にaではなく aを使用するのは悪い形式と見なされますか?TextFieldCharFieldTextFieldURLFieldTextFieldURLField

4

3 に答える 3

70

URLField は実際には CharField であり、正規表現ベースの URL パターン チェックとオンライン バリデーター (正規表現ベースのバリデーターに置き換えられました) をサポートしています。URL の長さ制限を気にしない場合は、TextField を使用できます。

from django.core.validators import URLValidator

# in model
field = models.TextField(validators=[URLValidator()])

さらに、CharField または TextField の使用は、フィールドに最大長の制約が必要かどうか、および編集に適している要素の種類 (textarea または input) によって異なります。PostgreSQL 側では、大きな違いはありません。

于 2012-04-07T06:20:42.563 に答える
3

https://docs.djangoproject.com/en/dev/ref/models/fields/#urlfield もちろん、CharField/TextField を使用できますが、ユーザー入力を処理し、ユーザーが入力するものはすべてあなた次第です。

ソースコードから:

# CharField と同様に、これにより URL 検証が実行されます

URLFieldのソース コードを見ると、実際には URL バリデータ付きの CharField であることがわかります。

また、EmailField、ImageField、*Field など、すぐに使用できるフィールドが他にもあります。

于 2012-04-07T06:39:25.863 に答える