我刚刚将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自动创建的.

您需要 Select 自动创建的主键的类型

要么将其添加到设置中.py

class Topic(models.Model):
    id = models.AutoField(primary_key=True)
    ...

Python-3.x相关问答推荐

Python3和请求-超文本标记语言:试图抓取一个网站-没有取回真正的超文本标记语言代码

PythonPandas 创建一个列并添加到DataFrame

文件名中的文件打开和撇号

Pandas -我们如何在一行中应用多个要求

如何将python点击参数设置为与选项回调不同的参数的别名?

如何计算累积几何平均数?

使用 Fetch 提交表单到 Django 视图

如何使用正则表达式通过反向搜索从链接中获取特定文本

Pandas 转换为日期时间

从一列字符串中提取子字符串并将它们放入列表中

python 分代垃圾收集:get_count 没有报告正确的对象创建数?

Jupyter Notebook 拒绝打印一些字符串

有没有办法使用 python opencv 计算与图像的白色距离

合并问卷中多列中的稀疏问题 - Pandas

用于 BIG 数组计算的多处理池映射比预期的要慢

如何禁用 pylint 禁止自用警告?

Python - For 循环数百万行

asyncio.Semaphore RuntimeError: Task got Future 附加到不同的循环

在python中打印下标

在 Ipython 中使用 Pylint (Jupyter-Notebook)