Django Fixture中的模型标识符无效

时间:2014-08-08 06:54:57

标签: python django django-models pyyaml

我的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,并返回相同的错误。

UPDATE: 这是我的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 个答案:

答案 0 :(得分:3)

您可能已将模型从apps/CKProject/models.py移至apps/Notification/models.py,因此其app_label已更改,现在Django将模型标识为Notification.NotificationType。你应该相应地更新你的夹具。

或者,您也可以将app_label = 'CKProject'(请参阅:app_label)添加到NotificationType的Meta对象,以使Django再次将其识别为CKProject.NotificationType