Django Fixture中的无效模型标识符
我的 Django 数据库初始化文件里包含以下数据:
- model: CkProject.NotificationType
pk: 1
fields:
name: comment
message: commented on your project
当我运行 python manage.py syncdb
时,它在加载这些数据时出现了错误:
raise base.DeserializationError("Invalid model identifier:
'%s'" % model_identifier)
django.core.serializers.base.DeserializationError: Problem installing fixture
'....../source/apps/CkProject/fixtures/initial_data.yaml':
Invalid model identifier: 'CkProject.NotificationType'
我甚至尝试用一个 JSON 文件替代 YAML 文件,但返回的错误还是一样。
更新:
这是我的 models.py 文件,位于 apps/Notification/models.py 里。
class NotificationType(models.Model):
class Meta:
db_table = 'CkProject_notificationtype'
name = models.CharField(max_length=50)
message = models.TextField()
def __unicode__(self):
return self.name
1 个回答
4
你可能把你的模型从 apps/CKProject/models.py
移动到了 apps/Notification/models.py
,所以它的应用标签(app_label)发生了变化,现在Django把这个模型识别为 Notification.NotificationType
。你需要相应地更新你的数据文件。
另外,你也可以在NotificationType的Meta对象中添加 app_label = 'CKProject'
(详细信息可以查看:app_label),这样Django就会再次把它识别为 CKProject.NotificationType
。