更新 Django 3.2 解决 DEFAULT_AUTO_FIELD warnings

当您在Django中定义一个没有指定主键的model时,Django将自动为您创建一个主键。主键设置为整数类型(integer)。如果要覆盖该字段类型,可以在每个模型(model)的基础上执行此操作。

从Django 3.2开始,您现在可以在您的设置(settings)中自定义自动创建的主键的类型。

在Django 3.2中开始新项目时,主键的默认类型设置为BigAutoField,这是一个64位整数(64 bit integer)。但是,早期版本将隐式主键的类型设置为整数(integer)。

这意味着当您升级到3.2版本时,您将开始看到有关您没有显式定义的主键类型的警告。满足Django对显式设置主键类型的要求很容易,但您还需要选择是否要将主键字段类型从整数升级到64位整数。

升级到3.2后,官方文档中的建议是运行以下代码:

python -Wa manage.py test

您应该会看到配置DEFAULT_AUTO_FIELD的警告和提示:

WARNINGS:
blog.BlogPost: (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 BlogConfig.default_auto_field at

你可能感兴趣的:(django,web开发,django,python,migration)