システムチェックフレームワーク
システムチェックフレームワークは、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)
コアシステムチェック
下位互換性
互換性チェックは、Djangoのアップグレード後に発生する可能性のある潜在的な問題を警告します。
- 2_0.W001 :URLパターン
<pattern>
には、(?P<
を含む、^
で始まる、またはで終わるroute
があります。$
。 これは、url()
から path()に移行する際の見落としであった可能性があります。
キャッシュ
次のチェックは、:setting: `CACHES` 設定が正しく構成されていることを確認します。
- caches.E001 ::setting: `CACHES` 設定で
'default'
キャッシュを定義する必要があります。
データベース
MySQL
MySQLを使用している場合は、次のチェックが実行されます。
- mysql.E001 :MySQLは、一意の
CharField
がmax_length
> 255を持つことを許可していません。 - mysql.W002 :データベース接続
<alias>
にMySQLStrictModeが設定されていません。 sql_mode の設定も参照してください。
モデルフィールド
- 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.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 :
GenericIPAddressField
は、null値が許可されていない場合、空白値はnullとして格納されるため、空白値を受け入れることができません。 - fields.E160 :オプション
auto_now
、auto_now_add
、およびdefault
は相互に排他的です。 これらのオプションの1つだけが存在する可能性があります。 - fields.W161 :提供されたデフォルト値を修正しました。
- fields.W162 :
<database>
は、<field data type>
列のデータベースインデックスをサポートしていません。 - fields.E170 :
BinaryField
のdefault
を文字列にすることはできません。 代わりにバイトコンテンツを使用してください。 - 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で削除されます。
ファイルフィールド
- 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 :フィールドがモデル
<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 :
indexes/index_together/unique_together
は、存在しないフィールド<field name>
を参照します。 - models.E013 :
indexes/index_together/unique_together
はManyToManyField
<field name>
を参照しますが、ManyToManyField
はそのオプションではサポートされていません。 - models.E014 :
ordering
はタプルまたはリストである必要があります(1つのフィールドのみで注文する場合でも)。 - models.E015 :
ordering
は、存在しないフィールド、関連フィールド、またはルックアップ<field name>
を指します。 - models.E016 :
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>
。
安全
セキュリティチェックはあなたのサイトを安全にしません。 コードを監査したり、侵入検知を行ったり、特に複雑なことをしたりすることはありません。 むしろ、それらはあなたがあなたのサイトのセキュリティを改善するのを助けることができる自動化された、ぶら下がっている果物のチェックリストを実行するのを助けます。
これらのチェックの一部は、特定のデプロイメント構成に適していない場合があります。 たとえば、ロードバランサーで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文字未満です。 長くランダムな
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
に設定されていません。HttpOnly
CSRF 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` 設定を無効な値に設定しました。
信号
- 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_vertical[n]
の値は、<model>
の属性ではない<field name>
を参照しています。 - admin.E020 :
filter_vertical[n]/filter_vertical[n]
の値は多対多のフィールドである必要があります。 - admin.E021 :
radio_fields
の値は辞書である必要があります。 - admin.E022 :
radio_fields
の値は、<model>
の属性ではない<field name>
を参照しています。 - admin.E023 :
radio_fields
の値は、ForeignKey
ではなく、choices
を持たない<field name>
を参照しています。意味。 - 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__
属性は一意である必要があります。
InlineModelAdmin
以下のチェックは、 ModelAdmin にインラインとして登録されている InlineModelAdmin に対して実行されます。
- admin.E201 :フィールド
<field name>
は、親モデル<app_label>.<model>
への外部キーであるため、除外できません。 - admin.E202 :
<model>
にはForeignKey
から<parent model>
がありません。/<model>
には複数のForeignKey
があります。<parent model>
。 - 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` にある必要があります。
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
は、メソッドではなく属性またはプロパティである必要があります。 匿名ユーザーは認証済みとして扱われるため、これを無視するとセキュリティの問題になります。
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>
のデフォルトは、すべてのフィールドインスタンス間で共有されないように、インスタンスではなく呼び出し可能である必要があります。
sites
CurrentSiteManager を使用して、すべてのモデルで次のチェックが実行されます。
- sites.E001 :
CurrentSiteManager
は<field name>
という名前のフィールドを見つけることができませんでした。 - sites.E002 :
CurrentSiteManager
は、外部キーまたは多対多フィールドではないため、<field>
を使用できません。
staticfiles
次のチェックは、 django.contrib.staticfiles が正しく構成されていることを確認します。
- staticfiles.E001 ::setting: `STATICFILES_DIRS` 設定はタプルまたはリストではありません。
- staticfiles.E002 ::setting: `STATICFILES_DIRS` 設定には、:setting:` STATIC_ROOT` 設定を含めることはできません。
- staticfiles.E003 ::setting: `STATICFILES_DIRS` 設定のプレフィックス
<prefix>
はスラッシュで終了してはなりません。