[解決済み] Django で主キーの型を定義していないときに主キーを自動生成する警告が表示されます。
2022-09-12 13:50:08
質問
Python を 3.9.1 から 3.9.4 にアップデートしたところです。サーバーを実行しようとしたとき。コンソールに警告が表示されました。
WARNINGS:
learning_logs.Entry: (models.W042) Auto-created primary key used when not defining a primary key type, by default 'django.db.models.AutoField'.
HINT: Configure the DEFAULT_AUTO_FIELD setting or the LearningLogsConfig.default_auto_field attribute to point to a subclass of AutoField, e.g. 'django.db.models.BigAutoField'.
learning_logs.Topic: (models.W042) Auto-created primary key used when not defining a primary key type, by default 'django.db.models.AutoField'.
HINT: Configure the DEFAULT_AUTO_FIELD setting or the LearningLogsConfig.default_auto_field attribute to point to a subclass of AutoField, e.g. 'django.db.models.BigAutoField'.
No changes detected in app 'learning_logs'
どうすればこれを修正できるのか、教えていただけないでしょうか。 私はこれについてのドキュメントを読みましたが、私はこの部分がどのように理解されていません。 このページ がどのように関連するのか理解できません。
モデル.py
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class Topic(models.Model):
text = models.CharField(max_length = 200)
date_added = models.DateTimeField(auto_now_add = True)
image = models.ImageField(upload_to = 'backgroud_images', null = True, blank = True)
owner = models.ForeignKey(User,on_delete = models.CASCADE)
def __str__(self):
return self.text
class Entry(models.Model):
topic = models.ForeignKey(Topic,on_delete = models.CASCADE)
text = models.TextField()
date_added = models.DateTimeField(auto_now_add = True)
class Meta:
verbose_name_plural = "Entries"
def __str__(self):
return self.text[:50]
どのように解決するのですか?
あなたのモデルには主キーがありません。しかし、それらは django によって自動的に作成されています。
自動作成される主キーの種類を選択する必要があります。 https://docs.djangoproject.com/en/3.2/releases/3.2/#customizing-type-of-auto-created-primary-keys (Django 3.2 の新機能です)
これを settings.py に追加します。
DEFAULT_AUTO_FIELD='django.db.models.AutoField'
または
class Topic(models.Model):
id = models.AutoField(primary_key=True)
...
関連
-
[解決済み】`jupyter notebook`実行時のエラー(No such file or directory)
-
[解決済み] Process finished with exit code 1」とはどういう意味ですか?
-
[解決済み] Dockerイメージの実行中にそのようなファイルやディレクトリがないエラーが発生する
-
[解決済み] PyCharmでpython 3.4を使用する際にInvalid Python SDK Errorが発生する。
-
[解決済み] Python 3 の requests.get でデータを取得する前にページがロードされるのを待つ
-
[解決済み] 'python3' は内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されません。
-
[解決済み] Jupyterノートブックで別ディレクトリのpyファイルをインポートする
-
[解決済み] モジュール 'pandas' には 'scatter_matrix' という属性がない」 というエラーはどうすれば解決できますか?
-
[解決済み】Python - n+nn+nnn+nnnの値を与えられた桁をnの値として計算する方法
-
[解決済み] Python 3 のバイト列変数を通常の文字列に変換するにはどうすればよいですか?重複
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 AttributeError: 'module' オブジェクトには 'urlretrieve' という属性がありません。
-
[解決済み】なぜELIF Invalid Syntax Errorが発生するのでしょうか?
-
[解決済み] Pythonで "filter "オブジェクトの長さを求める方法
-
[解決済み] PyCharmでpython 3.4を使用する際にInvalid Python SDK Errorが発生する。
-
[解決済み] NumPy:linalg.eig()とlinalg.eigh()の違いについて
-
[解決済み] エアフロースケジューラーを再起動する
-
[解決済み] python3 で cv2 をインポートするには?
-
[解決済み] ~/.conda/envs. ~/anaconda3/envs.
-
[解決済み] discordのボットコマンドとイベントの両方を使うには?
-
[解決済み] モジュール 'pandas' には 'scatter_matrix' という属性がない」 というエラーはどうすれば解決できますか?