我正在编写一个多功能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
。这是一个fliter字段,用于区分活动和非活动Client
对象。我只是在MySQL中添加ALTER TABLE
语句来添加字段并将相关记录设置为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
打印输出。
为了进一步测试,我将索引方法更改为
def index(request):
client_list = Client.objects.all()
for c in client_list:
print c.live_client
这又引发了一个描述'Client' object has no attribute 'live_client'
现在,这与models.py
和python manage.py inspectdb