【问题标题】:ProgrammingError at / ORDER BY "id" is ambiguous LINE 1: ...logapp_article.userid=blogapp_useradd.uname ORDER BY id DESCProgrammingError at / ORDER BY "id" is ambiguous LINE 1: ...logapp_article.userid=blogapp_useradd.uname ORDER BY id DESC
【发布时间】:2020-05-22 21:51:42
【问题描述】:

异常值:
ORDER BY "id" 不明确 第 1 行:...logapp_article.userid=blogapp_useradd.uname ORDER BY id DESC

views.py 中的错误位置

定义索引(请求):

ad1 = ads.objects.raw("select * from blogapp_ads order by id desc limit 1")
ad2 = ads.objects.raw("select * from blogapp_ads order by id desc limit 1 offset 1")
ad34 = ads.objects.raw("select * from blogapp_ads order by id desc limit 2 offset 2")
ob1 = news.objects.raw("select * from blogapp_news order by id desc limit 5")
obb = article.objects.raw(
    "select * from blogapp_article inner join blogapp_useradd on blogapp_article.userid=blogapp_useradd.uname ORDER BY id DESC LIMIT 14")
obj = article.objects.raw(
    "select * from blogapp_article inner join blogapp_useradd on blogapp_article.userid=blogapp_useradd.uname ORDER BY id DESC LIMIT 5")
ob = article.objects.raw(
    "select * from blogapp_article inner join blogapp_useradd on blogapp_article.userid=blogapp_useradd.uname ORDER BY id DESC")
return render(request, 'Guest/Index.html', context={'data9':obb, 'data3': ob1,'data1': ob, 'data2':obj, 'time': now,'data4':ad1,'data5':ad2,'data6':ad34})

【问题讨论】:

  • 用表名限定列id,如blogapp_article.idblogapp_useradd.id
  • 您在这里进行原始查询有什么原因吗?使用 Django ORM 可以完美地完成上述所有查询(以更短的方式)。

标签: django sqlite heroku


【解决方案1】:

在无法查看表的情况下,我假设“id”作为属性存在于您要加入的两个表中。尝试将您的加入声明更改为:

ob = article.objects.raw(
    "select * from blogapp_article as a inner join blogapp_useradd as b on a.userid=b.uname ORDER BY a.id DESC")

【讨论】:

  • 谢谢,这段代码将消除我的错误。如果发生类似错误,请尝试此操作
猜你喜欢
  • 2015-02-26
  • 1970-01-01
  • 1970-01-01
  • 2010-10-10
  • 2021-07-14
  • 1970-01-01
  • 2020-03-09
  • 1970-01-01
  • 2020-02-19
相关资源
最近更新 更多