【发布时间】: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_NULL 或SET_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_ NULL和on_delete= SET_DEFAULT时,请包括makemigrations的输出。 -
谢谢你,我已经更新了Q'
标签: django django-models