Django SQLite エラー: Unicode 文字列を保存するときに「文字列値が正しくありません」
Unicode 文字列を保存中に「文字列値が正しくありません」エラーが発生しましたDjango の auth_user モデルはイライラする可能性があります。このエラーは通常、文字エンコーディングまたは文字列に許可されている最大バイト長に問題があることを示します。
原因:
このエラーの根本原因は、MySQL がutf-8 文字セットを使用する Unicode 文字の 3 バイト制限。これは、発音記号や特殊記号を含む文字など、3 バイトを超える文字を utf-8 文字セットを使用して MySQL テーブルに保存できないことを意味します。
解決策:
この問題を解決するには、次の手順を実行する必要があります。手順:
DATABASES = { 'default': { # ... other settings ... 'OPTIONS': {'charset': 'utf8mb4'}, } }
PostgreSQL バリアント:
データベース バックエンドとして PostgreSQL を使用している場合、PostgreSQL は Unicode 文字をサポートしているため、この問題は発生しない可能性があります。最大長は 4 bytes.
結論:
MySQL 5.5 以降にアップグレードし、utf8mb4 文字セットを使用すると、Unicode 文字列を保存する際の「不正な文字列値」エラーを解決できます。ジャンゴで。必要に応じて、Django 設定を変更し、データベース スキーマとフィールドの長さを調整してください。
以上がUnicode 文字列を SQLite に保存するときに Django が「不正な文字列値」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。