【问题标题】:django 1.8 makemigrations "No changes detected"django 1.8 makemigrations“未检测到更改”
【发布时间】:2016-06-19 20:52:01
【问题描述】:

我想了解我缺少什么。

我之前的模型:

class sectorToMapXY(models.Model):
    pos     = models.IntegerField()
    name    = models.CharField(max_length=15)
    mapX    = models.FloatField(default=0)
    mapY    = models.FloatField(default=0)
    destMap = models.ForeignKey(Document, related_name='%(class)s_docfile')

更改后的模型(更新了destMap中的on_delete删除):

class sectorToMapXY(models.Model):
    pos     = models.IntegerField()
    name    = models.CharField(max_length=15)
    mapX    = models.FloatField(default=0)
    mapY    = models.FloatField(default=0)
    destMap = models.ForeignKey(Document, related_name='%(class)s_docfile',on_delete=models.SET(-1))

当运行python manage.py makemigrations 时,它返回No changes detected

on_delete 更改为SET_NULLSET_DEFAULT 时,它会检测到更改。

更新:

我没有设置 SET_NULL 和 SET_DEFAULT,所以在尝试运行时它会返回错误(但它会检测到更改):

SystemCheckError: System check identified some issues:
ERRORS:
dashboard.sectorToMapXY.destMap: (fields.E321) Field specifies on_delete=SET_DEFAULT, but has no default value.
    HINT: Set a default value, or change the on_delete rule.

当添加models.ForeignKey(Document, related_name='%(class)s_docfile',null=True,on_delete=models.SET_NULL) 运行python manage.py makemigrations 返回No changes detected

【问题讨论】:

  • 设置on_delete=SET_ NULLon_delete= SET_DEFAULT时,请包括makemigrations的输出。
  • 谢谢你,我已经更新了Q'

标签: django django-models


【解决方案1】:

我无法在django 1.8 上重现您的错误。

但是,我不确定在设置on_delete=SET_NULLon_delete=SET_DEFAULTmakemigrations 命令如何成功运行,因为您在字段定义中缺少null=Truedefault=default_value

如果这是您第一次在应用程序上处理migrations,您应该运行:

$ python manage.py makemigrations your_app_label

如指定here

【讨论】:

  • 添加 null=True class sectorToMapXY(models.Model): pos = models.IntegerField() name = models.CharField(max_length=15) mapX = models.FloatField(default=0) mapY = models.FloatField(default=0) destMap = models.ForeignKey(Document, related_name='%(class)s_docfile',null=True,on_delete=models.SET_NULL) 后,makemigrations 返回检测到没有变化。
猜你喜欢
  • 2016-07-09
  • 2014-09-14
  • 1970-01-01
  • 1970-01-01
  • 2021-05-09
  • 2019-11-01
  • 2021-02-07
相关资源
最近更新 更多