Tôi có một thư mục mô hình có một vài mô hình trong các tệp đã có trong DB. Tôi vừa thêm một tập tin/mô hình khác nhưng nó không được thêm vào DB khi tôi chạy syncdb. Tôi đã thử manage.py validate và nó đang chạy tốt. Tôi cũng đã chạy mã và nó chỉ thất bại khi nó cố gắng để tiết kiệm với "bảng không tồn tại".Mô hình Django không hiển thị trong DB sau syncdb
cấu trúc ban đầu là như thế này:
/mô hình
- __ init __ py
- file1.py
- file2.py
và __ init __ .py trông giống như:
from file1 import File1Model
from file2 import File2Model
tôi thêm file3.py
/mô hình
- __ init __ py
- file1.py
- file2.py
- file3.py
và sửa đổi __ init __ py
from file1 import File1Model
from file2 import File2Model
from file3 import File3Model
Và nội dung của tệp3 (tên có thể đã được thay đổi để bảo vệ người vô tội, nhưng bên cạnh đó là tệp chính xác của nó):
CẬP NHẬT: vừa thử thêm khóa chính vì trường id có thể đã gây rối với việc thêm tự động id chính của số nguyên. Cũng đã thử một vài biến thể nhưng không có súc sắc.
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
Vì vậy, trong ví dụ này, File1Model và File2Model đã có trong DB và vẫn ở trong DB sau syncdb. Tuy nhiên, File3Model không được thêm ngay cả sau khi chạy lại syncdb. Có cách nào để tìm ra lý do tại sao mô hình mới không được thêm vào ??
Bạn đã thử 'syncdb --all' chưa? – sultan
vừa thử nhưng vẫn không hoạt động. – ntrrobng