Django syncdb没有为我的应用程序制作表格

Nic*_*ner 5 python django django-models

它曾经工作过,现在却没有.python manage.py syncdb不再为我的应用制作表格.

来自settings.py:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'mysite.myapp',
    'django.contrib.admin',
)
Run Code Online (Sandbox Code Playgroud)

我能做错什么?中断似乎与在models.py中编辑此模型相吻合,但这可能完全是巧合.我注释掉了我改变的线条,但它仍然不起作用.

class MyUser(models.Model):
    user = models.ForeignKey(User, unique=True)
    takingReqSets = models.ManyToManyField(RequirementSet, blank=True)
    takingTerms = models.ManyToManyField(Term, blank=True)
    takingCourses = models.ManyToManyField(Course, through=TakingCourse, blank=True)
    school = models.ForeignKey(School)
#    minCreditsPerTerm = models.IntegerField(blank=True)
#    maxCreditsPerTerm = models.IntegerField(blank=True)
#    optimalCreditsPerTerm = models.IntegerField(blank=True)
Run Code Online (Sandbox Code Playgroud)

更新:

当我运行时python manage.py loadddata initial_data,它会出错:

DeserializationError: Invalid model identifier: myapp.SomeModel
Run Code Online (Sandbox Code Playgroud)

加载这些数据之前工作得很好.在数据文件中的第一个数据对象上抛出此错误.

解决了:

通过删除此行修复:

from stringprep import bl
Run Code Online (Sandbox Code Playgroud)

Ste*_*lim 2

我敢打赌,您上面提到的 SomeModel 模型(不一定是 MyUser)有问题,这意味着它无法通过 loaddata 导入。如果不是 SomeModel,则为定义 SomeModel 的同一 models.py 中的模型。

你有没有尝试过./manage.py validate?即使这表明所有模型都很好,但有时如果应用程序的 models.py 中存在错误,则整个应用程序对于 management.py 来说将变得“不可见”。我不能说我知道为什么会这样,但似乎敲响了警钟。

  • 验证报告:“发现 0 个错误”。我想我会手动查找其他错误。 (5认同)