我有一个很小的(到目前为止)遗留数据库,我使用
在Django中自动生成 python manage.py inspectdb > models.py
我将其放入保存应用程序的python包中,并添加到我的INSTALLED_APPS
设置中。
我跑了:python manage.py makemigrations app_name
“ app_name”的迁移: app_name / migrations / 0002_auto_20180809_0453.py
下一步:python manage.py migrate app_name
要执行的操作: 应用所有迁移:app_name 运行迁移: 正在应用app_name.0001_initial ...确定 正在应用app_name.0002_auto_20180809_0453 ...确定
我检查了是否使用python manage.py sqlmigrate app_name 0001
创建了模型,这表明创建了多个模型。
我的models.py
文件如下:
from __future__ import unicode_literals
from django.db import models
class Test(models.Model):
date = models.FloatField(blank=True, null=True)
shift = models.FloatField(blank=True, null=True)
timer = models.FloatField(blank=True, null=True)
target_produce = models.FloatField(blank=True,
null=True)
actual_produce = models.FloatField(blank=True,
null=True)
oee = models.FloatField(blank=True, null=True)
class Meta:
managed = False
db_table = 'Test'
我正在尝试从views.py
访问我的数据库。这是我的代码:
File: views.py
from __future__ import unicode_literals
from django.shortcuts import render
from django.http import HttpResponse
from lineoee.models import Test
# Create your views here.
def index(request):
context = {}
lines = Test.objects.date() # <-- Error here
print(lines)
return render(request,
'lineoee/index.html',context)
我收到归因错误
“经理”对象没有属性“日期”
我尝试实施解决方案here,并添加了UserManager
导入和objects = UserManager()
,但最终还是
“ Usermanager”对象没有属性“ date”
关于如何消除此错误并正确访问旧数据库中数据的任何建议?
答案 0 :(得分:1)
您需要照做,
Test.objects.all().values('date')
如果您需要打印各自的数据,
for i in Test.objects.all().values('date'):
print i['date']
或
for i in Test.objects.all().values_list('date', flat=True):
print i
答案 1 :(得分:0)
“对象”对象不是数据本身。正如Django告诉您的那样,它是一个允许您访问数据的管理器。为了从中获取数据,您应该使用其方法之一:get()用于单个数据条目,all()或filter()或exclude()用于条目列表。例如
lines = Lineoee1.objects.all() # retrieves all data from Lineoee1 model
lines[0].date # retrieves date field from the first entry
或者,如果您只想获取日期,请尝试将values_list()方法与字段名列表一起使用:
dates = Lineoee1.objects.values_list('id', 'date')
添加了“ id”作为额外字段来标识日期所属的条目-您可以将其删除或替换为拥有的任何主键。
有关在django docs查询的更多信息