python - 如何在 Django 中添加额外的列 mysql 数据库表?
问题描述
我是 Django 的新手。我正在为我的 django 项目使用 Mysql 数据库。我在 models.py 中创建了模型类。
在我的models.py
from django.db import models
class AuthModel(models.Model):
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
email = models.CharField(max_length=255)
username = models.CharField(max_length=255)
password = models.CharField(max_length=255)
我已使用以下命令将此字段迁移到我的 Mysql 数据库中
Python manage.py makemigrations
Python manage.py migrate
现在,我想在表中再添加一列“user_type”。
我可以从数据库中手动添加“user_type”列,但它不会将“user_type”值插入表中。因为我的“AuthModel”中没有包含“user_type”列。
如果我将 user_type 包含到“AuthModel”中并运行迁移命令,但是它不起作用。我想将 user_type 列添加到我的表中。怎么做?
解决方案
首先,您应该在models.py中添加该字段
from django.db import models
class AuthModel(models.Model):
user_type = models.CharField(max_length=255)
然后在admin.py中更改,方法是添加您在models.py 中声明的字段名称,例如 -
class UAdmin(admin.ModelAdmin):
dics = ('user_type')
如果您有任何表单文件,然后将其更改添加,然后转到终端并 -
python manage.py makemigrations
python manage.py migrate
如果终端说-
Please select a fix:
1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
2) Quit, and let me add a default in models.py
然后按 1 并提供一个值。
您的数据库将有新的 'user_type' 列。
推荐阅读
- java - 如何使用 JavaFXPorts 在 android 中启用 JavaFX 虚拟键盘
- android - 如何将计数器值分配给可扩展列表视图按钮
- c# - 如何防止在一个按钮上多次连续按下“Enter”键
- android - 在自定义键盘中编辑文本
- node.js - AWS dynamodb 端点不正确
- javascript - 仅当地图上有空白图块时,才在图层上设置特定的缩放和最大缩放
- javascript - 基于其他更小的基础组件构建组件的最佳方式是什么?
- swift - 在现有部分创建 PushRow 并在运行时传递值
- java - JUnit 测试中的 IllegalAnnotationExceptions
- sbt - 如何将 SBT 的开发版本发布到我的 Artifactory ivy2 存储库?