У меня есть папка с моделями, в которой есть несколько моделей в файлах, которые уже находятся в БД. Я только что добавил еще один файл/модель, но он не добавляется в БД при запуске syncdb. Я попытался проверить manage.py, и он работает нормально. Я также запустил код, и он терпит неудачу только тогда, когда пытается сохранить «таблица не существует».
исходная структура была такой:
/модели
-- __ init__.py
-- файл1.py
-- file2.py
и __ init__.py выглядел так:
from file1 import File1Model
from file2 import File2Model
Я добавил file3.py
/модели
-- __ инициализация__.py
-- файл1.py
-- файл2.py
-- file3.py
и модифицированный __ init__.py
from file1 import File1Model
from file2 import File2Model
from file3 import File3Model
И содержимое файла3 (имена могли быть изменены для защиты невиновных, но помимо этого его точный файл):
ОБНОВЛЕНИЕ: только что попытался добавить первичный ключ, так как поле 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 уже находятся в БД и остаются в БД после syncdb. Однако File3Model не добавляется даже после перезапуска syncdb.Есть ли способ выяснить, почему новая модель не добавляется??