システムチェックフレームワーク
システムチェックフレームワークは、Djangoプロジェクトを検証するための一連の静的チェックです。 一般的な問題を検出し、それらを修正する方法のヒントを提供します。 フレームワークは拡張可能であるため、独自のチェックを簡単に追加できます。
独自のチェックを追加してDjangoのシステムチェックと統合する方法の詳細については、システムチェックトピックガイドを参照してください。
APIリファレンス
CheckMessage
- class CheckMessage(level, msg, hint=None, obj=None, id=None)
システムチェックによって発生する警告とエラーは、CheckMessageのインスタンスである必要があります。 インスタンスは、単一の報告可能なエラーまたは警告をカプセル化します。 また、メッセージに適用可能なコンテキストとヒント、およびフィルタリングの目的で使用される一意の識別子も提供します。
コンストラクターの引数は次のとおりです。
level- メッセージの重大度。 事前定義された値の1つを使用します:
DEBUG、INFO、WARNING、ERROR、CRITICAL。 レベルがERROR以上の場合、Djangoは管理コマンドの実行を阻止します。ERRORより低いレベルのメッセージ(つまり、 警告)はコンソールに報告されますが、無音にすることができます。 msg- 問題を説明する短い(80文字未満)文字列。 文字列には改行を含めるべきではありません。
hint- 問題を修正するためのヒントを提供する1行の文字列。 ヒントを提供できない場合、またはヒントがエラーメッセージから自明である場合は、ヒントを省略するか、
Noneの値を使用できます。 obj- オプション。 メッセージのコンテキストを提供するオブジェクト(たとえば、問題が発見されたモデル)。 オブジェクトは、モデル、フィールド、マネージャー、または
__str__()メソッドを定義するその他のオブジェクトである必要があります。 このメソッドは、すべてのメッセージを報告するときに使用され、その結果がメッセージの前に表示されます。 id- オプションの文字列。 問題の一意の識別子。 識別子はパターン
applabel.X001に従う必要があります。ここで、Xは文字CEWIDのいずれかであり、メッセージの重大度を示します(クリティカルの場合はC、E]エラーなど)。 番号はアプリケーションによって割り当てることができますが、そのアプリケーション内で一意である必要があります。
共通レベルのメッセージを簡単に作成できるようにするサブクラスがあります。 それらを使用する場合、level引数はクラス名によって暗示されるため、省略できます。
- class Debug(msg, hint=None, obj=None, id=None)
- class Info(msg, hint=None, obj=None, id=None)
- class Warning(msg, hint=None obj=None, id=None)
- class Error(msg, hint=None, obj=None, id=None)
- class Critical(msg, hint=None, obj=None, id=None)
コアシステムチェック
非同期サポート
バージョン3.1の新機能。
次のチェックは、非同期サポートのセットアップを確認します。
- async.E001 :展開時に DJANGO_ALLOW_ASYNC_UNSAFE 環境変数を設定しないでください。 これにより、非同期安全保護が無効になります。
下位互換性
互換性チェックは、Djangoのアップグレード後に発生する可能性のある潜在的な問題を警告します。
- 2_0.W001 :URLパターン
<pattern>には、(?P<を含む、^で始まる、またはで終わるrouteがあります。$。 これは、url()から path()に移行する際の見落としであった可能性があります。
キャッシュ
次のチェックは、:setting: `CACHES` 設定が正しく構成されていることを確認します。
- caches.E001 ::setting: `CACHES` 設定で
'default'キャッシュを定義する必要があります。 - caches.W002 : あなたの
<cache>構成により、キャッシュが公開されたり、データが破損したりする可能性があります。 :setting: `LOCATION ` 一致する/内部にある/含む :setting: `MEDIA_ROOT` / :setting: `STATIC_ROOT` / :setting: `STATICFILES_DIRS` 。 - caches.W003 : あなたの
<cache>キャッシュ :setting: `LOCATION ` 相対的です。 代わりに絶対パスを使用してください。
データベース
MySQLとMariaDB
MySQLまたはMariaDBを使用している場合、次のチェックが実行されます。
- mysql.E001 :MySQL / MariaDBでは、一意の
CharFieldがmax_length> 255を持つことはできません。 実際の最大サイズは多くの要因に依存するため、このチェックはDjango3.1でmysql.W003に変更されました。 - mysql.W002 :データベース接続
<alias>にMySQL / MariaDB厳密モードが設定されていません。 sql_mode の設定も参照してください。 - mysql.W003 :MySQL / MariaDBは、一意の
CharFieldがmax_length> 255を持つことを許可しない場合があります。
モデルフィールド
- fields.E001 :フィールド名はアンダースコアで終わらせてはなりません。
- fields.E002 :フィールド名に
"__"を含めることはできません。 - fields.E003 :
pkは、フィールド名として使用できない予約語です。 - fields.E004 :
choicesは反復可能である必要があります(リストまたはタプルなど)。 - fields.E005 :
choicesは、(actual value, human readable name)タプルを含む反復可能である必要があります。 - fields.E006 :
db_indexは、None、True、またはFalseである必要があります。 - fields.E007 :主キーに
null=Trueを含めることはできません。 - fields.E008 :すべての
validatorsは呼び出し可能である必要があります。 - fields.E009 :
max_lengthが小さすぎて、choices(<count>文字)の最長値に収まりません。 - fields.E010 :
<field>のデフォルトは、すべてのフィールドインスタンス間で共有されないように、インスタンスではなく呼び出し可能である必要があります。 - fields.E100 :
AutoFieldは、primary_key = Trueを設定する必要があります。 - fields.E110 :
BooleanFieldはnull値を受け入れません。 このチェックは、Django2.1でnull値のサポートが追加される前に表示されました。 - fields.E120 :
CharFieldは、max_length属性を定義する必要があります。 - fields.E121 :
max_lengthは正の整数である必要があります。 - fields.W122 :
<integer field type>と一緒に使用すると、max_lengthは無視されます。 - fields.E130 :
DecimalFieldは、decimal_places属性を定義する必要があります。 - fields.E131 :
decimal_placesは負でない整数でなければなりません。 - fields.E132 :
DecimalFieldは、max_digits属性を定義する必要があります。 - fields.E133 :
max_digitsは正の整数である必要があります。 - fields.E134 :
max_digitsはdecimal_places以上である必要があります。 - fields.E140 :
FilePathFieldは、allow_filesまたはallow_foldersのいずれかをTrueに設定する必要があります。 - fields.E150 :
null=Falseの場合、GenericIPAddressFieldはblank=Trueを持つことができません。これは、空白の値がnullとして格納されるためです。 - fields.E160 :オプション
auto_now、auto_now_add、およびdefaultは相互に排他的です。 これらのオプションの1つだけが存在する可能性があります。 - fields.W161 :提供されたデフォルト値を修正しました。
- fields.W162 :
<database>は、<field data type>列のデータベースインデックスをサポートしていません。 - fields.E170 :
BinaryFieldのdefaultを文字列にすることはできません。 代わりにバイトコンテンツを使用してください。 - fields.E180 :
<database>はJSONFieldをサポートしていません。 - fields.E190 :
<database>は、<field_type>でのデータベース照合をサポートしていません。 - fields.E900 :
IPAddressFieldは、過去の移行でのサポートを除いて削除されました。 - fields.W900 :
IPAddressFieldは非推奨になりました。 それのサポート(過去の移行を除く)はDjango1.9で削除されます。 このチェックはDjango1.7および1.8 で登場しました。 - fields.W901 :
CommaSeparatedIntegerFieldは非推奨になりました。 それのサポート(過去の移行を除く)はDjango2.0で削除されます。 このチェックはDjango1.10および1.11 で登場しました。 - fields.E901 :
CommaSeparatedIntegerFieldは、過去の移行でのサポートを除いて削除されました。 - fields.W902 :
FloatRangeFieldは非推奨であり、Django3.1で削除されます。 このチェックはDjango2.2および3.0 で登場しました。 - fields.W903 :
NullBooleanFieldは非推奨です。 それのサポート(過去の移行を除く)はDjango4.0で削除されます。 - fields.W904 :
django.contrib.postgres.fields.JSONFieldは非推奨です。 それのサポート(過去の移行を除く)はDjango4.0で削除されます。
ファイルフィールド
- fields.E200 :
uniqueはFileFieldの有効な引数ではありません。 このチェックはDjango1.11 で削除されました。 - fields.E201 :
primary_keyはFileFieldの有効な引数ではありません。 - fields.E202 :
FileFieldのupload_to引数は、絶対パスではなく相対パスである必要があります。 - fields.E210 :Pillowがインストールされていないため、
ImageFieldを使用できません。
モデル
- models.E001 :
<swappable>はapp_label.app_nameの形式ではありません。 - models.E002 :
<SETTING>は、インストールされていないか、抽象的である<model>を参照します。 - models.E003 :モデルには、中間モデル
<app_label>.<model>を介した2つの同一の多対多関係があります。 - models.E004 :
idは、フィールドにprimary_key=Trueも設定されている場合にのみ、フィールド名として使用できます。 - models.E005 :親モデル
<model>のフィールド<field name>が、親モデル<model>のフィールド<field name>と衝突します。 - models.E006 :フィールド
<field name>は、モデル<model>のフィールド<field name>と衝突します。 - models.E007 :フィールド
<field name>には、別のフィールドで使用される列名<column name>があります。 - models.E008 :
index_togetherはリストまたはタプルである必要があります。 - models.E009 :すべての
index_together要素はリストまたはタプルである必要があります。 - models.E010 :
unique_togetherはリストまたはタプルである必要があります。 - models.E011 :すべての
unique_together要素はリストまたはタプルである必要があります。 - models.E012 :
constraints/indexes/index_together/unique_togetherは、存在しないフィールド<field name>を参照します。 - models.E013 :
constraints/indexes/index_together/unique_togetherはManyToManyField<field name>を参照しますが、ManyToManyFieldはそのオプションではサポートされていません。 - models.E014 :
orderingはタプルまたはリストである必要があります(1つのフィールドのみで注文する場合でも)。 - models.E015 :
orderingは、存在しないフィールド、関連フィールド、またはルックアップ<field name>を指します。 - models.E016 :
constraints/indexes/index_together/unique_togetherは、モデル<model>に対してローカルではないフィールド<field_name>を参照します。 - models.E017 :プロキシモデル
<model>にはモデルフィールドが含まれています。 - models.E018 :自動生成された列名がフィールド
<field>に対して長すぎます。 データベース<alias>の最大長は<maximum length>です。 - models.E019 :自動生成された列名がM2Mフィールド
<M2M field>に対して長すぎます。 データベース<alias>の最大長は<maximum length>です。 - models.E020 :
<model>.check()クラスメソッドは現在オーバーライドされています。 - models.E021 :
orderingとorder_with_respect_toは併用できません。 - models.E022 :
<function>には<app label>.<model>への遅延参照が含まれていますが、アプリ<app label>がインストールされていないか、モデル [を提供していませんX135X]。 - models.E023 :モデル名
<model>は、クエリルックアップ構文と衝突するため、アンダースコアで開始または終了できません。 - models.E024 :モデル名
<model>は、クエリルックアップ構文と衝突するため、二重下線を含めることはできません。 - models.E025 :プロパティ
<property name>が関連するフィールドアクセサーと衝突します。 - models.E026 :モデルは
primary_key=Trueで複数のフィールドを持つことはできません。 - models.W027 :
<database>はチェック制約をサポートしていません。 - models.E028 :
db_table<db_table>は複数のモデルで使用されています:<model list>。 - models.E029 :インデックス名
<index>はモデル<model>で一意ではありません。 - models.E030 :インデックス名
<index>はモデル間で一意ではありません:<model list>。 - models.E031 :制約名
<constraint>はモデル<model>に対して一意ではありません。 - models.E032 :制約名
<constraint>はモデル間で一意ではありません:<model list>。 - models.E033 :インデックス名
<index>をアンダースコアまたは数字で始めることはできません。 - models.E034 :インデックス名
<index>は<max_length>文字より長くすることはできません。 - models.W035 :
db_table<db_table>は複数のモデルで使用されています:<model list>。 - models.W036 :
<database>は、条件付きの一意の制約をサポートしていません。 - models.W037 :
<database>は、条件付きのインデックスをサポートしていません。 - models.W038 :
<database>は、延期可能な一意の制約をサポートしていません。 - models.W039 :
<database>は、非キー列での一意の制約をサポートしていません。 - models.W040 :
<database>は、非キー列を持つインデックスをサポートしていません。 - models.E041 :
constraintsは、結合されたフィールド<field name>を参照します。 - models.W042 :主キータイプを定義しない場合に使用される自動作成された主キー。デフォルトでは
django.db.models.AutoField。 - models.W043 :
<database>は式のインデックスをサポートしていません。
安全
セキュリティチェックはあなたのサイトを安全にしません。 コードを監査したり、侵入検知を行ったり、特に複雑なことをしたりすることはありません。 むしろ、それらはあなたがあなたのサイトのセキュリティを改善するのを助けることができる自動化された、ぶら下がっている果物のチェックリストを実行するのを助けます。
これらのチェックの一部は、特定のデプロイメント構成に適していない場合があります。 たとえば、ロードバランサーでHTTPからHTTPSへのリダイレクトを行う場合、:setting: `SECURE_SSL_REDIRECT` が有効になっていないことについて常に警告されるのはイライラします。 :setting: `SILENCED_SYSTEM_CHECKS` を使用して、不要なチェックを無音にします。
check --deployオプションを使用すると、次のチェックが実行されます。
- security.W001 ::setting: `MIDDLEWARE` に django.middleware.security.SecurityMiddleware がないため、:setting:` SECURE_HSTS_SECONDS` 、:setting: `SECURE_CONTENT_TYPE_NOSNIFF` 、:setting:` SECURE_BROWSER_XSS_FILTER` 、:setting: `SECURE_REFERRER_POLICY` 設定: `SECURE_SSL_REDIRECT` 設定は効果がありません。
- security.W002 ::setting: `MIDDLEWARE` に django.middleware.clickjacking.XFrameOptionsMiddleware がないため、ページは提供されません。
'x-frame-options'ヘッダー。 サイトがフレームで提供される正当な理由がない限り、クリックジャッキング攻撃を防ぐためにこのヘッダーを有効にすることを検討する必要があります。 - security.W003 :ミドルウェアを介したDjangoの組み込みのクロスサイトリクエストフォージェリ保護を使用していないようです( django.middleware.csrf.CsrfViewMiddleware はにありませんX195X]:setting: `MIDDLEWARE` )。 ミドルウェアを有効にすることは、穴を残さないようにするための最も安全なアプローチです。
- security.W004 ::setting: `SECURE_HSTS_SECONDS` 設定の値を設定していません。 サイト全体がSSL経由でのみ提供される場合は、値を設定し、 HTTP Strict Transport Security を有効にすることを検討してください。 必ず最初にドキュメントを読んでください。 HSTSを不注意に有効にすると、深刻で不可逆的な問題が発生する可能性があります。
- security.W005 ::setting: `SECURE_HSTS_INCLUDE_SUBDOMAINS` 設定を
Trueに設定していません。 これがないと、サイトはサブドメインへの安全でない接続を介した攻撃に対して潜在的に脆弱になります。 ドメインのすべてのサブドメインをSSL経由で排他的に提供する必要があることが確実な場合にのみ、これをTrueに設定してください。 - security.W006 ::setting: `SECURE_CONTENT_TYPE_NOSNIFF` 設定が
Trueに設定されていないため、ページは'X-Content-Type-Options: nosniff'で提供されません。ヘッダ。 ブラウザがコンテンツタイプを誤って識別しないように、このヘッダーを有効にすることを検討する必要があります。 - security.W007 ::setting: `SECURE_BROWSER_XSS_FILTER` 設定が
Trueに設定されていないため、ページは'X-XSS-Protection: 1; mode=block'で提供されません。ヘッダ。 このヘッダーを有効にして、ブラウザーのXSSフィルタリングをアクティブにし、XSS攻撃を防ぐことを検討する必要があります。 このチェックは、X-XSS-Protectionヘッダーが最新のブラウザーで使用されなくなったため、Django3.0で削除されました。 - security.W008 ::setting: `SECURE_SSL_REDIRECT` 設定が
Trueに設定されていません。 サイトがSSL接続と非SSL接続の両方で利用可能である必要がない限り、この設定をTrueに設定するか、すべての接続をHTTPSにリダイレクトするようにロードバランサーまたはリバースプロキシサーバーを構成することをお勧めします。 - security.W009 ::setting: `SECRET_KEY` の文字数が50文字未満、一意の文字数が5文字未満であるか、プレフィックスが
'django-insecure-'であり、生成されたことを示しますDjangoによって自動的に。 長くランダムなSECRET_KEYを生成してください。そうしないと、Djangoのセキュリティクリティカルな機能の多くが攻撃に対して脆弱になります。 - security.W010 ::setting: `INSTALLED_APPS` に django.contrib.sessions がありますが、:setting:` SESSION_COOKIE_SECUREを設定していません`から
True。 セキュアオンリーセッションCookieを使用すると、ネットワークトラフィックスニファがユーザーセッションを乗っ取ることがより困難になります。 - security.W011 ::setting: `MIDDLEWARE` に django.contrib.sessions.middleware.SessionMiddleware がありますが、を設定していません:setting: `SESSION_COOKIE_SECURE` から
True。 セキュアオンリーセッションCookieを使用すると、ネットワークトラフィックスニファがユーザーセッションを乗っ取ることがより困難になります。 - security.W012 ::setting: `SESSION_COOKIE_SECURE` が
Trueに設定されていません。 セキュアオンリーセッションCookieを使用すると、ネットワークトラフィックスニファがユーザーセッションを乗っ取ることがより困難になります。 - security.W013 ::setting: `INSTALLED_APPS` に django.contrib.sessions がありますが、:setting:`を設定していませんSESSION_COOKIE_HTTPONLY` から
True。HttpOnlyセッションCookieを使用すると、クロスサイトスクリプティング攻撃がユーザーセッションを乗っ取ることがより困難になります。 - security.W014 ::setting: `MIDDLEWARE` に django.contrib.sessions.middleware.SessionMiddleware がありますが、を設定していません:setting: `SESSION_COOKIE_HTTPONLY` から
True。HttpOnlyセッションCookieを使用すると、クロスサイトスクリプティング攻撃がユーザーセッションを乗っ取ることがより困難になります。 - security.W015 ::setting: `SESSION_COOKIE_HTTPONLY` が
Trueに設定されていません。HttpOnlyセッションCookieを使用すると、クロスサイトスクリプティング攻撃がユーザーセッションを乗っ取ることがより困難になります。 - security.W016 ::setting: `CSRF_COOKIE_SECURE` が
Trueに設定されていません。 セキュアのみのCSRFCookieを使用すると、ネットワークトラフィックスニファがCSRFトークンを盗むことがより困難になります。 - security.W017 ::setting: `CSRF_COOKIE_HTTPONLY` が
Trueに設定されていません。HttpOnlyCSRF Cookieを使用すると、クロスサイトスクリプティング攻撃がCSRFトークンを盗むことがより困難になります。 このチェックはDjango1.11で削除されました。 :setting: `CSRF_COOKIE_HTTPONLY` 設定では、実用的なメリットはありません。 - security.W018 :展開時に:setting: `DEBUG` を
Trueに設定しないでください。 - security.W019 ::setting: `MIDDLEWARE` に django.middleware.clickjacking.XFrameOptionsMiddleware がありますが、:setting:` X_FRAME_OPTIONS`がありますが
'DENY'に設定されていません。 サイトがフレーム内でそれ自体の他の部分を提供する正当な理由がない限り、'DENY'に変更する必要があります。 - security.W020 ::setting: `ALLOWED_HOSTS` は展開時に空であってはなりません。
- security.W021 ::setting: `SECURE_HSTS_PRELOAD` 設定を
Trueに設定していません。 これがないと、サイトをブラウザのプリロードリストに送信できません。 - security.W022 ::setting: `SECURE_REFERRER_POLICY` 設定を設定していません。 これがないと、サイトはReferrer-Policyヘッダーを送信しません。 ユーザーのプライバシーを保護するために、このヘッダーを有効にすることを検討する必要があります。
- security.E023 ::setting: `SECURE_REFERRER_POLICY` 設定を無効な値に設定しました。
次のチェックは、セキュリティ関連の設定が正しく構成されていることを確認します。
- security.E100 ::setting: `DEFAULT_HASHING_ALGORITHM` は
'sha1'または'sha256'である必要があります。 - security.E101 :CSRF障害ビュー
'path.to.view'は正しい数の引数を取りません。 - security.E102 :CSRF障害ビュー
'path.to.view'をインポートできませんでした。
信号
- signal.E001 :
<handler>は送信者<app label>.<model>への遅延参照で<signal>信号に接続されましたが、アプリ<app label>は接続されていませんインストールされていないか、モデル<model>を提供していません。
テンプレート
次のチェックは、:setting: `TEMPLATES` 設定が正しく構成されていることを確認します。
- templates.E001 ::setting: `TEMPLATES` に
'APP_DIRS': Trueがありますが、OPTIONSに'loaders'も指定します。APP_DIRSを削除するか、'loaders'オプションを削除してください。 - テンプレート.E002 :
string_if_invalidの :setting: `TEMPLATES` :setting: `オプション ` 文字列である必要がありますが、次のようになります。{value}(({type})。
翻訳
変換構成に対して次のチェックが実行されます。
- translation.E001 ::setting: `LANGUAGE_CODE` 設定に無効な値を指定しました:
<value>。 - translation.E002 ::setting: `LANGUAGES` 設定で無効な言語コードを指定しました:
<value>。 - translation.E003 ::setting: `LANGUAGES_BIDI` 設定で無効な言語コードを指定しました:
<value>。 - translation.E004 ::setting: `LANGUAGE_CODE` 設定に、:setting:` LANGUAGES` 設定にない値を指定しました。
URL
URL構成に対して次のチェックが実行されます。
- urls.W001 :URLパターン
<pattern>は、 include()を使用し、routeは$で終わります。routeからドルを削除して、URLなどの問題を回避します。 - urls.W002 :URLパターン
<pattern>には、/で始まるrouteがあります。 このスラッシュは不要なので削除してください。 このパターンが include()の対象である場合は、 include()パターンの末尾に/があることを確認してください。 - urls.W003 :URLパターン
<pattern>には、:を含むnameがあります。 あいまいな名前空間参照を避けるために、コロンを削除します。 - urls.E004 :URLパターン
<pattern>が無効です。urlpatternsが path()および/または re_path()インスタンスのリストであることを確認してください。 - urls.W005 :URL名前空間
<namespace>は一意ではありません。 この名前空間のすべてのURLを元に戻すことができない場合があります。 - urls.E006 ::setting: `MEDIA_URL` / :setting:` STATIC_URL` 設定はスラッシュで終了する必要があります。
- urls.E007 :カスタム
handlerXXXビュー'path.to.view'は正しい数の引数を取りません(…)。 - urls.E008 :カスタム
handlerXXXビュー'path.to.view'をインポートできませんでした。
contribアプリチェック
admin
管理者チェックはすべてadminタグの一部として実行されます。
次のチェックは、管理サイトに登録されている ModelAdmin (またはサブクラス)に対して実行されます。
- admin.E001 :
raw_id_fieldsの値はリストまたはタプルである必要があります。 - admin.E002 :
raw_id_fields[n]の値は、<model>の属性ではない<field name>を参照しています。 - admin.E003 :
raw_id_fields[n]の値は、外部キーまたは多対多フィールドである必要があります。 - admin.E004 :
fieldsの値はリストまたはタプルである必要があります。 - admin.E005 :
fieldsetsとfieldsの両方が指定されています。 - admin.E006 :
fieldsの値に重複するフィールドが含まれています。 - admin.E007 :
fieldsetsの値はリストまたはタプルである必要があります。 - admin.E008 :
fieldsets[n]の値はリストまたはタプルである必要があります。 - admin.E009 :
fieldsets[n]の値は長さ2でなければなりません。 - admin.E010 :
fieldsets[n][1]の値は辞書である必要があります。 - admin.E011 :
fieldsets[n][1]の値には、キーfieldsが含まれている必要があります。 - admin.E012 :
fieldsets[n][1]に重複するフィールドがあります。 - admin.E013 :
fields[n]/fieldsets[n][m]には、ManyToManyField<field name>を含めることはできません。これは、そのフィールドが関係モデルを手動で指定しているためです。 - admin.E014 :
excludeの値はリストまたはタプルである必要があります。 - admin.E015 :
excludeの値に重複するフィールドが含まれています。 - admin.E016 :
formの値は、BaseModelFormから継承する必要があります。 - admin.E017 :
filter_verticalの値はリストまたはタプルである必要があります。 - admin.E018 :
filter_horizontalの値はリストまたはタプルである必要があります。 - admin.E019 :
filter_vertical[n]/filter_horizontal[n]の値は、<model>の属性ではない<field name>を参照しています。 - admin.E020 :
filter_vertical[n]/filter_horizontal[n]の値は多対多のフィールドである必要があります。 - admin.E021 :
radio_fieldsの値は辞書である必要があります。 - admin.E022 :
radio_fieldsの値は、<model>の属性ではない<field name>を参照しています。 - admin.E023 :
radio_fieldsの値は、<field name>を参照します。これは、ForeignKeyのインスタンスではなく、 [ X128X]の定義。 - admin.E024 :
radio_fields[<field name>]の値は、admin.HORIZONTALまたはadmin.VERTICALのいずれかである必要があります。 - admin.E025 :
view_on_siteの値は、呼び出し可能値またはブール値のいずれかである必要があります。 - admin.E026 :
prepopulated_fieldsの値は辞書である必要があります。 - admin.E027 :
prepopulated_fieldsの値は、<model>の属性ではない<field name>を参照しています。 - admin.E028 :
prepopulated_fieldsの値は、<field name>を参照します。これは、DateTimeField、ForeignKey、[ X111X] 、またはManyToManyFieldフィールド。 - admin.E029 :
prepopulated_fields[<field name>]の値はリストまたはタプルである必要があります。 - admin.E030 :
prepopulated_fieldsの値は、<model>の属性ではない<field name>を参照しています。 - admin.E031 :
orderingの値はリストまたはタプルである必要があります。 - admin.E032 :
orderingの値には、ランダムな順序付けマーカー?がありますが、他のフィールドも含まれています。 - admin.E033 :
orderingの値は、<model>の属性ではない<field name>を参照しています。 - admin.E034 :
readonly_fieldsの値はリストまたはタプルである必要があります。 - admin.E035 :
readonly_fields[n]の値は、呼び出し可能、<ModelAdmin class>の属性、または<model>の属性ではありません。 - admin.E036 :
autocomplete_fieldsの値はリストまたはタプルである必要があります。 - admin.E037 :
autocomplete_fields[n]の値は、<model>の属性ではない<field name>を参照しています。 - admin.E038 :
autocomplete_fields[n]の値は、外部キーまたは多対多フィールドである必要があります。 - admin.E039 :モデル
<model>の管理者は、<modeladmin>.autocomplete_fieldsによって参照されるように登録する必要があります。 - admin.E040 :
<modeladmin>は、<other_modeladmin>.autocomplete_fieldsによって参照されるため、search_fieldsを定義する必要があります。
ModelAdmin
次のチェックは、管理サイトに登録されている ModelAdmin に対して実行されます。
- admin.E101 :
save_asの値はブール値である必要があります。 - admin.E102 :
save_on_topの値はブール値である必要があります。 - admin.E103 :
inlinesの値はリストまたはタプルである必要があります。 - admin.E104 :
<InlineModelAdmin class>はInlineModelAdminから継承する必要があります。 - admin.E105 :
<InlineModelAdmin class>にはmodel属性が必要です。 - admin.E106 :
<InlineModelAdmin class>.modelの値はModelである必要があります。 - admin.E107 :
list_displayの値はリストまたはタプルである必要があります。 - admin.E108 :
list_display[n]の値は、呼び出し可能ではない<label>、<ModelAdmin class>の属性、または上の属性またはメソッドを参照します<model>。 - admin.E109 :
list_display[n]の値はManyToManyFieldフィールドであってはなりません。 - admin.E110 :
list_display_linksの値は、リスト、タプル、またはNoneである必要があります。 - admin.E111 :
list_display_links[n]の値は、list_displayで定義されていない<label>を参照します。 - admin.E112 :
list_filterの値はリストまたはタプルである必要があります。 - admin.E113 :
list_filter[n]の値は、ListFilterから継承する必要があります。 - admin.E114 :
list_filter[n]の値はFieldListFilterから継承してはなりません。 - admin.E115 :
list_filter[n][1]の値は、FieldListFilterから継承する必要があります。 - admin.E116 :
list_filter[n]の値は、フィールドを参照しない<label>を参照します。 - admin.E117 :
list_select_relatedの値は、ブール値、タプル、またはリストである必要があります。 - admin.E118 :
list_per_pageの値は整数である必要があります。 - admin.E119 :
list_max_show_allの値は整数である必要があります。 - admin.E120 :
list_editableの値はリストまたはタプルである必要があります。 - admin.E121 :
list_editable[n]の値は、<model>の属性ではない<label>を参照しています。 - admin.E122 :
list_editable[n]の値は、list_displayに含まれていない<label>を参照します。 - admin.E123 :
list_editable[n]の値をlist_editableとlist_display_linksの両方に含めることはできません。 - admin.E124 :
list_editable[n]の値は、list_display(<label>)の最初のフィールドを参照します。これは、list_display_linksでなければ使用できません。 ]が設定されます。 - admin.E125 :
list_editable[n]の値は、<field name>を参照しており、管理者は編集できません。 - admin.E126 :
search_fieldsの値はリストまたはタプルである必要があります。 - admin.E127 :
date_hierarchyの値は、フィールドを参照しない<field name>を参照します。 - admin.E128 :
date_hierarchyの値はDateFieldまたはDateTimeFieldである必要があります。 - admin.E129 :
<modeladmin>は、<action>アクションのhas_<foo>_permission()メソッドを定義する必要があります。 - admin.E130 :
<modeladmin>で定義されたアクションの__name__属性は一意である必要があります。 名前<name>は一意ではありません。
InlineModelAdmin
以下のチェックは、 ModelAdmin にインラインとして登録されている InlineModelAdmin に対して実行されます。
- admin.E201 :フィールド
<field name>は、親モデル<app_label>.<model>への外部キーであるため、除外できません。 - admin.E202 :
<model>にはForeignKeyから<parent model>がありません。/<model>には複数のForeignKeyがあります。<parent model>。fk_name属性を指定する必要があります。 - admin.E203 :
extraの値は整数である必要があります。 - admin.E204 :
max_numの値は整数である必要があります。 - admin.E205 :
min_numの値は整数である必要があります。 - admin.E206 :
formsetの値は、BaseModelFormSetから継承する必要があります。
GenericInlineModelAdmin
次のチェックは、 ModelAdmin にインラインとして登録されている GenericInlineModelAdmin に対して実行されます。
- admin.E301 :
'ct_field'は、<model>のフィールドではない<label>を参照します。 - admin.E302 :
'ct_fk_field'は、<model>のフィールドではない<label>を参照します。 - admin.E303 :
<model>にはGenericForeignKeyがありません。 - admin.E304 :
<model>には、コンテンツタイプフィールド<field name>とオブジェクトIDフィールド<field name>を使用するGenericForeignKeyがありません。
AdminSite
次のチェックは、デフォルトの AdminSite で実行されます。
- admin.E401 :管理アプリケーションを使用するには、 django.contrib.contenttypes が:setting: `INSTALLED_APPS` にある必要があります。
- admin.E402 : django.contrib.auth.context_processors.auth は、 DjangoTemplates (:setting: `TEMPLATES` )で有効にする必要があります管理アプリケーションを使用するためにデフォルトの認証バックエンドを使用する場合。
- admin.E403 :管理アプリケーションを使用するには、 django.template.backends.django.DjangoTemplates インスタンスを:setting: `TEMPLATES` で構成する必要があります。
- admin.E404 :管理アプリケーションを使用するには、 DjangoTemplates (:setting: `TEMPLATES` )で
django.contrib.messages.context_processors.messagesを有効にする必要があります。 - admin.E405 :管理アプリケーションを使用するには、 django.contrib.auth が:setting: `INSTALLED_APPS` にある必要があります。
- admin.E406 :管理アプリケーションを使用するには、 django.contrib.messages が:setting: `INSTALLED_APPS` にある必要があります。
- admin.E408 :管理アプリケーションを使用するには、 django.contrib.auth.middleware.AuthenticationMiddleware が:setting: `MIDDLEWARE` にある必要があります。
- admin.E409 :管理アプリケーションを使用するには、 django.contrib.messages.middleware.MessageMiddleware が:setting: `MIDDLEWARE` にある必要があります。
- admin.E410 :管理アプリケーションを使用するには、 django.contrib.sessions.middleware.SessionMiddleware が:setting: `MIDDLEWARE` にある必要があります。
- admin.W411 :管理ナビゲーションサイドバーを使用するには、 DjangoTemplates (:setting: `TEMPLATES` )で
django.template.context_processors.requestを有効にする必要があります。
auth
- auth.E001 :
REQUIRED_FIELDSはリストまたはタプルである必要があります。 - auth.E002 :カスタムユーザーモデルの
USERNAME_FIELDという名前のフィールドは、REQUIRED_FIELDSに含めないでください。 - auth.E003 :
<field>は、USERNAME_FIELDという名前であるため、一意である必要があります。 - auth.W004 :
<field>はUSERNAME_FIELDという名前ですが、一意ではありません。 - auth.E005 :コードネーム
<codename>のアクセス許可が、モデル<model>の組み込みアクセス許可と衝突します。 - auth.E006 :コードネーム
<codename>のパーミッションがモデル<model>に複製されています。 - auth.E007 :モデル
<model>の verbose_name は、組み込みのパーミッション名を最大255文字にするために、最大244文字である必要があります。 - auth.E008 :モデル
<model>の<name>という名前の権限が255文字を超えています。 - auth.C009 :
<User model>.is_anonymousは、メソッドではなく属性またはプロパティである必要があります。 匿名ユーザーは認証済みとして扱われるため、これを無視するとセキュリティの問題になります。 - auth.C010 :
<User model>.is_authenticatedは、メソッドではなく属性またはプロパティである必要があります。 匿名ユーザーは認証済みとして扱われるため、これを無視するとセキュリティの問題になります。 - auth.E011 :モデル
<model>の名前は、組み込みの権限名を最大100文字にするために、最大93文字である必要があります。 - auth.E012 :モデル
<model>のコードネーム<codename>のパーミッションが100文字を超えています。
contenttypes
モデルに GenericForeignKey または GenericRelation が含まれている場合、次のチェックが実行されます。
- contenttypes.E001 :
GenericForeignKeyオブジェクトIDは、存在しないフィールド<field>を参照します。 - contenttypes.E002 :
GenericForeignKeyコンテンツタイプは、存在しないフィールド<field>を参照します。 - contenttypes.E003 :
<field>はForeignKeyではありません。 - contenttypes.E004 :
<field>はForeignKeyからcontenttypes.ContentTypeではありません。 - contenttypes.E005 :モデル名は最大100文字である必要があります。
postgres
django.contrib.postgres モデルフィールドで次のチェックが実行されます。
- postgres.E001 :配列のベースフィールドにエラーがあります:…
- postgres.E002 :配列のベースフィールドを関連フィールドにすることはできません。
- postgres.E003 :
<field>のデフォルトは、すべてのフィールドインスタンス間で共有されないように、インスタンスではなく呼び出し可能である必要があります。 このチェックは、Django 3.1 でfields.E010に変更されました。
sites
CurrentSiteManager を使用して、すべてのモデルで次のチェックが実行されます。
- sites.E001 :
CurrentSiteManagerは<field name>という名前のフィールドを見つけることができませんでした。 - sites.E002 :
CurrentSiteManagerは、外部キーまたは多対多フィールドではないため、<field>を使用できません。
次のチェックは、 django.contrib.sites が正しく構成されていることを確認します。
- sites.E101 ::setting: `SITE_ID` 設定は整数である必要があります。
staticfiles
次のチェックは、 django.contrib.staticfiles が正しく構成されていることを確認します。
- staticfiles.E001 ::setting: `STATICFILES_DIRS` 設定はタプルまたはリストではありません。
- staticfiles.E002 ::setting: `STATICFILES_DIRS` 設定には、:setting:` STATIC_ROOT` 設定を含めることはできません。
- staticfiles.E003 ::setting: `STATICFILES_DIRS` 設定のプレフィックス
<prefix>はスラッシュで終了してはなりません。