python-3.x - django 模型在每次迁移时都会收到 Alter Field 警报
问题描述
每次运行命令时,我都会收到更改归档警报,python manage.py makemigrations
我还删除了我的数据库旧迁移文件,但警报仍然存在,有人知道我该如何解决这个问题吗?
Migrations for 'assignment':
assignment/migrations/0012_auto_20201016_0754.py
- Alter field city on assignment
- Alter field status on assignment
class Assignment(models.Model):
CITY_SELECT = {
('i', 'Islamabad'),
('l', 'Lahore'),
('m', 'Multan'),
('k', 'Karachi'),
('q', 'Queta'),
('p', 'Pashawar')
}
STATUS_SELECT = {
('p', 'Pendding'),
('d', 'Done'),
('i', 'In field'),
('c', 'Cancel')
}
place = models.CharField(max_length=100)
desc = models.CharField(max_length=500)
reporter = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
created_on = models.DateTimeField(auto_now_add=True)
assign_time = models.DateTimeField(auto_now=False, null=True)
city = models.CharField(choices=CITY_SELECT, max_length=9)
status = models.CharField(choices=STATUS_SELECT, max_length=8)
解决方案
很可能该集合每次都以不同的顺序“洗牌”,从而产生choices
不可预测的情况。如果多次运行 Python 进程,则每次的散列常数都是不同的。您可以使用列表,这将确保顺序始终相同:
class Assignment(models.Model):
CITY_SELECT = [ # ← use a list
('i', 'Islamabad'),
('l', 'Lahore'),
('m', 'Multan'),
('k', 'Karachi'),
('q', 'Queta'),
('p', 'Pashawar')
]
STATUS_SELECT = [ # ← use a list
('p', 'Pendding'),
('d', 'Done'),
('i', 'In field'),
('c', 'Cancel')
]
place = models.CharField(max_length=100)
desc = models.CharField(max_length=500)
reporter = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
created_on = models.DateTimeField(auto_now_add=True)
assign_time = models.DateTimeField(auto_now=False, null=True)
city = models.CharField(choices=CITY_SELECT, max_length=9)
status = models.CharField(choices=STATUS_SELECT, max_length=8)
推荐阅读
- html - 向网站添加自定义字体 (HTML/CSS)
- java - 拆分和比较一个字符串(Java)
- amazon-web-services - 无法通过 cloud9 将远程 lambda 函数导入 ec2
- elasticsearch - Elasticsearch - 不同字段的不同搜索字符串
- html - .NET Core Blazor 应用程序:如何在页面之间传递数据?
- excel - 将 DATE 计算为 TEXT 的公式
- mysql - SpringBoot + Maven 连接并创建数据库模式
- vue.js - 如何在vue中一次切换单个行以获取从数组生成的行?
- android - 将数据从 Mat 复制到 ANativeWindow_Buffer
- php - Laravel 在单个子句中使用多个 where 和 sum