当前位置:网站首页>Auto-created primary key used when not defining a primary key
Auto-created primary key used when not defining a primary key
2022-06-30 21:08:00 【weixin_888988】
When you define a model in Django without specifying a primary key, Django will automatically create a primary key for you. The primary key is set to be an integer. If you want to override the field type, you can do so on a per model basis.
Starting in Django 3.2, you can now customise the type of the automatically created primary key in your settings.
Starting new projects in Django 3.2, the default type for primary keys is set to a BigAutoField which is a 64 bit integer. However, earlier versions set the type of implicit primary keys to be integers.
This means that when you upgrade to 3.2, you will start to see warnings about the fact that you do not have an explicitly defined primary key type. Satisfying Django's requirements for an explicitly set primary key type is easy enough, but you also need to choose whether or not you want to upgrade your primary key field types from integer to 64 bit integer.
There are a few ways to fix this. Broadly speaking they fall into two categories
Configure DEFAULT_AUTO_FIELD in settings
Open your project's settings.py and add a new line at the bottom of the file
DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'
Setting on a per app basis
If you prefer to set your field type on a per app basis rather than for the whole project, you can specify this in apps.py.
from django.apps import AppConfig
class MyappConfig(AppConfig):
default_auto_field = 'django.db.models.AutoField'
name = 'Myapp'
Set AutoField or BigAutoField on a per model basis
If you prefer even more fine grained control, you can set a per model id field.
class Model1(models.Model):
id = models.BigAutoField(primary_key=True)边栏推荐
猜你喜欢

Web APIs 综合案例-Tab栏切换 丨黑马程序员

Icml2022 | utility theory of sequential decision making

Personal developed penetration testing tool Satania

开发技术-使用easyexcel导入文件(简单示例)

Testing principle and precautions of biovendor rage ELISA Kit

文本识别-SVTR论文解读

报错FileSystemException: /datas/nodes/0/indices/gtTXk-hnTgKhAcm-8n60Jw/1/index/.es_temp_file:结构需要清理

防范未授权访问攻击的十项安全措施

ArcGIS construction and release of simple road network data service and rest call test

Vite2兼容低版本chrome(如搜狗80),通过polyfills处理部分需求高版本的语法
随机推荐
MySQL introduction, detailed installation steps and usage | dark horse programmer
Icml2022 | utility theory of sequential decision making
k个一组反转链表
判断js对象是否为空的方式
[original] unable to use the code dialog height and width to solve the screen problem
PHP obtains opcode and C source code
大学生研究生毕业找工作,该选择哪个方向?
Binary search tree (1) - concept and C language implementation
对多态的理解
ssh-server配置文件参数PermitRootLogin介绍
Apply for vector bus protocol color picture wallpaper hanging picture, very good!
Software engineering UML drawing
Flutter 嵌套地狱?不存在的,ConstraintLayout 来解救!
有趣插件汇总
Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource could
Peking University ACM problems 1005:i think I need a houseboat
CentOS - enable / disable Oracle
个人开发的渗透测试工具Satania
19.04 分配器
PHP require/include differences