我有一个模型文件夹,这些文件夹中已有数据库中的几个模型。我刚刚添加了另一个文件/模型,但是当我运行syncdb时,它不会被添加到数据库中。我试过manage.py验证,它运行良好。我也运行了代码,它只在尝试使用“表不存在”进行保存时失败。Django模型在syncdb后没有显示在数据库中
原来的结构是这样的:
/型号
- __ 初始化 __的.py
- file1.py
- file2.py
和__ init __ .py看起来像:
from file1 import File1Model
from file2 import File2Model
我加file3.py
/型号
- __ 初始化 __的.py
- file1.py
- file2.py
- file3.py
和改性__ 初始化 __的.py
from file1 import File1Model
from file2 import File2Model
from file3 import File3Model
和file3的内容(名称可能已经改变,以保护无辜,但除此之外它的确切文件):
更新:刚刚尝试添加主键,因为ID字段可能已经与自动添加整数主键ID。也尝试了一些变化,但没有骰子。
from django.db import models
from django.contrib.auth.models import User
class File3Model(models.Model):
user = models.OneToOneField(User)
token = models.CharField(max_length=255, blank=False, null=False)
id = models.CharField(primary_key=True, max_length=255)
class Admin:
pass
class Meta:
app_label = 'coolabel'
def __unicode__(self):
return self.user.username
@staticmethod
def getinstance(user, token, id):
try:
instance = File3Model.objects.get(pk=id)
if instance.token != token:
instance.token = token
instance.save()
return instance
except:
pass
instance = File3Model()
instance.user = user
instance.token = token
instance.id = id
instance.save()
return instance
因此,在这个例子中,File1Model和File2Model已经在DB和执行syncdb后留在DB。但是,即使在重新运行syncdb之后,也不会添加File3Model。有什么方法可以找出为什么新模型没有被添加?
你试过'syncdb --all'吗? – sultan
刚刚尝试过,但仍然无法正常工作。 – ntrrobng