模型中的更改.即使在成功运行makemigrations和migrate命令后,也不会在网站上反映



我的models.py看起来像这个

from django.db import models
from django.urls import reverse

class Product(models.Model):
PRODUCTS_CATEGORY = [
('None', 'None'),
('Sterilisation', 'Sterilisation'),
('Cleaning Chemistry', 'Cleaning Chemistry'),
('Bacterial Barrier', 'Bacterial Barrier'),
('Waste Management', 'Waste Management'),
('Instrument Tracking', 'Instrument Tracking'),
('Validation', 'Validation')
]
prod_id = models.AutoField
prod_name = models.CharField(max_length=100)
prod_category = models.CharField(
max_length=100, choices=PRODUCTS_CATEGORY, default='None')
prod_desc = models.TextField()
prod_img = models.ImageField(upload_to='product_images')
slug = models.SlugField(null=True, blank=True)
def __str__(self):
return self.prod_name

我将灭菌的拼写更改为灭菌(将"s"替换为"z"(
我运行python manage.py makemigrations,它返回
Migrations for 'website': website/migrations/0003_auto_20210407_1842.py - Alter field prod_category on product
然后我运行python manage.py migrate,它返回
Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions, website Running migrations: Applying website.0003_auto_20210407_1842... OK
,但我看不到网站上反映的更改。拼写仍然是消毒这是什么原因
PS:我使用的是sqlite3,网站位于Ubuntu 20.04x64上,这是一个VPS

@azundo给出了最简单的解决方案
步骤1:使用命令python manage.py shell进入您的python django shell
步骤2:使用命令from <app_name>.models import <model_name>导入您想要进行更改的所需模型
第3步:使用以下命令<model_name>.objects.filter(<column_name>='<old_spelling>').update(<column_name>='<new_spelling>')
在我的情况下,上述命令是Product.objects.filter(prod_category='Sterilisation').update(prod_category='Sterilization')

相关内容

最新更新