我有一个Django模型,在另一个模型中被引用为ForeignKey
类型。为了在管理界面中很好地显示它,我添加了__unicode__
方法,如下所示:
class Foo(models.Model):
label = models.CharField(max_length=2)
description = models.TextField()
def __unicode__(self):
return self.label
保存models.py文件后,管理界面中会立即显示此更改。但是当我运行makemigrations
时,它会返回No changes detected in app 'foo'
。正在运行migrate
没有任何效果,因为它没有看到任何更改,python manage.py check
会返回System check identified no issues (0 silenced).
我应该期待吗?我对我的模型进行了很多更改,因此进行了很多迁移(包括本周),但我以前从未遇到过这种情况。
目前在Windows上的Python 2.7下运行带有Sqlite开发数据库的Django 1.8.3。
答案 0 :(得分:1)
那应该没问题。只有在模型的结构发生更改时,才会创建迁移,例如,如果您向模型添加任何新变量。
作为新方法,由于它们不会改变模型的结构,因此不需要迁移。因此,您可以愉快地为模型添加方法,而无需运行单个迁移。
如果该名称未显示在django的管理员后端中,请尝试使用方法__str__
。这对我有用(但在Linux上运行Python 3.5)。
def __str__ ( self ):
return self.name