如何解决如何在Django中添加额外的列mysql数据库表?
我是Django的新手。我正在为django项目使用Mysql数据库。我已经在models.py中创建了模型类。
在我的模型中。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')
如果你有任何 form 文件然后改变添加它, 然后去终端和 -
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”列。
,将新字段添加到模型中,然后重新运行迁移命令:
class AuthModel(models.Model):
# ...
user_type = models.CharField(max_length=255) # or whatever field you want
然后重新运行:
Python manage.py makemigrations
Python manage.py migrate
您的数据库将具有新的user_type
列。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。