0

我正在编写一个多用途的 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

4

0 回答 0