Python Django模型元更改在更改元属性时引发错误

Python Django模型元更改在更改元属性时引发错误,python,django,Python,Django,我有下面的Django模型,其中managed=False,现在我需要将其更改为managed=True,并添加一个属性选择的char字段 第1版 class TblHoldings(models.Model): item_code = models.CharField(unique=True, max_length=5) product_name = models.CharField(max_length=45) service_provider = models.Fo

我有下面的Django模型,其中managed=False,现在我需要将其更改为managed=True,并添加一个属性选择的char字段 第1版

class TblHoldings(models.Model):
    item_code = models.CharField(unique=True, max_length=5)
    product_name = models.CharField(max_length=45)
    service_provider = models.ForeignKey(TblHoldingsServiceProviders,on_delete=models.CASCADE, related_name='service_provider',db_column='service_provider')
    account_details = models.CharField(max_length=100)
    purchase_cost = models.IntegerField()
    current_value = models.IntegerField()
    power_of = models.CharField(max_length=45, blank=True, null=True)
    purchase_date = models.DateTimeField(blank=True, null=True)
    updated_at = models.DateTimeField(blank=True, null=True)
    created_at = models.DateTimeField(blank=True, null=True)

    def __str__(self):
        return self.product_name + ' at ' + self.service_provider.provider_name

    class Meta:
        verbose_name = 'Holding'
        verbose_name_plural = 'Holdings'
        managed = False
        db_table = 'tbl_holdings'
第2版

FIN_GOAL_TERM =(
    ('L', 'Long Term 7+ years'),
    ('M', 'Medium Term 3-7 years'),
    ('S', 'Short Term <2 years'),
)
class TblHoldings(models.Model):
    item_code = models.CharField(unique=True, max_length=5)
    product_name = models.CharField(max_length=45)
    service_provider = models.ForeignKey(TblHoldingsServiceProviders,on_delete=models.CASCADE, related_name='service_provider',db_column='service_provider')
    account_details = models.CharField(max_length=100)
    purchase_cost = models.IntegerField()
    current_value = models.IntegerField()
    power_of = models.CharField(max_length=45, blank=True, null=True)
    purchase_date = models.DateTimeField(blank=True, null=True)
    goal_term = models.CharField(max_length=40, choices=FIN_GOAL_TERM)
    updated_at = models.DateTimeField(blank=True, null=True)
    created_at = models.DateTimeField(blank=True, null=True)

    def __str__(self):
        return self.product_name + ' at ' + self.service_provider.provider_name

    class Meta:
        verbose_name = 'Holding'
        verbose_name_plural = 'Holdings'
        managed = True
        db_table = 'tbl_holdings'
FIN\u目标\u术语=(
(“长期7年以上”),
(‘M’,‘中期3-7年’),

('S','Short-Term所以我根据Daniel Roseman的建议运行了下面的命令,它解决了我的问题

python3 manage.py迁移--假


该表中没有
priority
字段。似乎您意外地将其包含在
ModelAdmin
中?抱歉,priority字段实际上是目标项,让我更新error@ichtyocentaurs迁移似乎正在尝试创建一个已存在的列。请检查迁移文件并查看它是什么语句ying to execute您有一个现有的db表,您从中创建了一个非托管模型。现在您告诉Django开始管理它。因此,您需要一个虚假的初始迁移,在您开始添加新列之前,该迁移将告诉Django有关现有列的信息。谢谢@DanielRoseman