我正在编写一个多用途的 Web 应用程序,并且数据模型有些不稳定。
我有一个类Client
定义为
class Client(models.Model):
client = models.IntegerField(primary_key=True, db_column = "client_id")
client_name = models.CharField(max_length=100L, unique = True)
parentorg = models.ForeignKey("Parentorgs")
demo_client = models.IntegerField()
live_client = models.IntegerField(db_column = "live_client")
class Meta:
db_table = 'txn_client'
live_client
刚刚添加了最后一个字段。这是一个过滤字段,用于区分活动对象和非活动Client
对象。我没有依赖数据迁移,而是简单地ALTER TABLE
在 MySQL 中做了一条语句来添加字段并将相关记录设置为 1。这在过去一直有效,问题为零。
在我看来,我有
from app.models import Client
def index(request):
client_list = Client.objects.filter(live_client = 1)
突然,这是抛出一个 FieldError,因为 Django cannot resolve keyword 'live_client' into a field
,并显示了一些替代关键字。
为了确保模型记录正在复制数据库表,我运行了
python manage.py inspectdb
并且Client
班级models.py
复制了inspectdb
打印输出。
为了进一步测试,我将 index 方法更改为
def index(request):
client_list = Client.objects.all()
for c in client_list:
print c.live_client
这反过来又引发了一个 AttributeError 说明'Client' object has no attribute 'live_client'
models.py
现在,这与两者中的定义和打印输出中的定义完全矛盾python manage.py inspectdb