如何在 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 

这是在我的数据库中创建表,如下所示

http://img.mukewang.com/647ed9a600016ac306490205.jpg现在,我想在表中再添加一列“user_type”。
我可以从数据库中手动添加“user_type”列,但它不会将“user_type”值插入表中。因为我没有在我的“AuthModel”中包含“user_type”列。
如果我将 user_type 包含到“AuthModel”中并运行迁移命令,但它不起作用。我想将 user_type 列添加到我的表中。怎么做?

ABOUTYOU
浏览 156回答 2
2回答

守着星空守着你

首先,您应该在models.py中添加该字段from django.db import modelsclass AuthModel(models.Model):    user_type = models.CharField(max_length=255)然后 通过添加您在models.py中声明的字段名称来更改admin.py ,例如 -class UAdmin(admin.ModelAdmin):    dics = ('user_type')如果你有任何表单文件,那么也更改添加它,然后转到终端和 -python manage.py makemigrationspython 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

将新字段添加到您的模型并重新运行迁移命令: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列。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python