【问题标题】:Can't change my Django model with migrations无法通过迁移更改我的 Django 模型
【发布时间】:2020-12-15 17:40:28
【问题描述】:

我尝试实施我在这里找到的许多解决方案,但没有任何帮助,所以我正在寻找答案。

在我的 Django 项目中,我的 Model.py 具有以下模型:


class Boat(models.Model):
    boatId = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    manufacturer = models.ForeignKey(Manufacturer, related_name='boatModels', on_delete=models.CASCADE, default=None)
    modelName = models.CharField(max_length=256, default=None)
    loa = models.FloatField(default=None)
    draftMin = models.FloatField(default=None)
    draftMax = models.FloatField(default=None)
    displacement = models.IntegerField(default=None)
    makerURL = models.CharField(max_length=1000, default=None)
    videoURL = models.CharField(max_length=1000, default=None)
    tags = TaggableManager()

最初我在最新添加的字段videoURL 中收到此错误:

/boats/ 处的操作错误 没有这样的列:boat_app_boat.videoURL

现在是这个:

/admin/boat_app/boat/edc81b63-d8a5-4ab2-887d-97703554dc4e/change/ 处的溢出错误 Python int 太大,无法转换为 SQLite INTEGER

我确实按照某些人的建议删除了旧迁移,但我认为这只会让事情变得更糟。最终“按本书”迁移的最佳方式是什么,或者如果无法说,我会接受有关如何从头开始的建议,因为我的数据库中只有几项。

【问题讨论】:

    标签: django django-models django-migrations


    【解决方案1】:

    因为 CharField 允许 256 个字符

    如果可以将 FileField 和 URLField 用于 videoURL 和 makerURL

    【讨论】:

      猜你喜欢
      • 2014-07-01
      • 2019-11-05
      • 1970-01-01
      • 2016-12-26
      • 2021-09-08
      • 2015-04-30
      • 2021-08-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多