如何在Django中添加额外列mysql数据库表?

2024-10-03 11:21:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Django的新手。我在django项目中使用Mysql数据库。我在models.py中创建了模型类

在my 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 

它正在我的数据库中生成表,如下所示
enter image description here

现在,我想在表中再添加一列“user\u type”。
我可以从数据库中手动添加“user\u type”列,但不能在表中插入“user\u type”值。因为我的“AuthModel”中没有包含“user\u type”列。
如果我在“AuthModel”中包含user_type并运行迁移命令,那么它将不起作用。我想将“用户类型”列添加到我的表中。怎么做


Tags: djangonamepy命令数据库managemodelstype
2条回答

将新字段添加到模型并重新运行迁移命令:

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

首先,您应该在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并提供一个值

您的数据库将有新的“用户类型”列

相关问题 更多 >