我得到的关系不存在,我无法找到解决方案。
error:relation "sales_Oeslshstsql" does not exist
LINE 1: SELECT * FROM "sales_Oeslshstsql
(应用名称为销售)
模型:
class Oeslshstsql(models.Model):
hst_prd = models.SmallIntegerField()
hst_year = models.SmallIntegerField()
cus_no = models.CharField(max_length=12)
item_no = models.CharField(max_length=15)
.....
a4glidentity = models.IntegerField(db_column='A4GLIdentity', primary_key = True)
class Meta:
managed = False
db_table = 'OESLSHST_SQL'
def __str__(self):
return (self.hst_year)
查看:
def sales(request):
#sales_list = Oeslshstsql.objects.all().order_by('hst_year','hst_prd').reverse()
s = Oeslshstsql.objects.raw('SELECT * FROM "sales_Oeslshstsql"')
sales_list = s
return render(request,'saleslist.html',{'sales_list':sales_list})
评估s
时会引发错误。我尝试在选择中切换案例并且与迁移混乱没有运气。
我正在使用postgres后端将现有应用程序迁移到Django,我们将不胜感激。
答案 0 :(得分:0)
尝试:
s = Oeslshstsql.objects.raw('SELECT a4glidentity as id, ... , FROM "OESLSHST_SQL"')
http://docs.djangoproject.com/en/1.8/ref/models/options/#db-table似乎查询中的表名错误
编辑:您应该将主键添加为ID,请参阅https://docs.djangoproject.com/en/1.8/topics/db/sql/#mapping-query-fields-to-model-fields
答案 1 :(得分:0)
您好我将现有应用迁移到1.11时遇到了同样的问题。我发现的唯一解决方案是....
清除应用迁移目录中的所有文件,只保留 init .py文件
确保admin.py文件为空
运行manage.py makemigrations
运行manage.py sqlmigrate <app_label> 0001
复制sql输出
使用pgAdminIII选择“执行任意SQL查询”
在pgAdminIII
这是我能找到的唯一解决方案,有点破解,但是有效。希望它有所帮助。我想这也可以通过psql终端工作,但我使用了pgAdmin