为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

ABOUTYOU 2023-06-06 15:00:33
我是 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”列。


查看完整回答
反对 回复 2023-06-06
?
慕桂英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列。


查看完整回答
反对 回复 2023-06-06
  • 2 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信