我是 Django 的新手。我正在为我的 django 项目使用 Mysql 数据库。我在 models.py 中创建了模型类。在我的 models.py 中from django.db import modelsclass 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 列添加到我的表中。怎么做?
2 回答
守着星空守着你
TA贡献1799条经验 获得超8个赞
首先,您应该在models.py中添加该字段
from django.db import models
class AuthModel(models.Model):
user_type = models.CharField(max_length=255)
然后 通过添加您在models.py中声明的字段名称来更改admin.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”列。
慕桂英4014372
TA贡献1871条经验 获得超13个赞
将新字段添加到您的模型并重新运行迁移命令:
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
列。
添加回答
举报
0/150
提交
取消