找不到Django sqlite列

2024-06-01 08:15:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我在查询sqlite数据库时遇到了一些问题。以前有人见过这个吗?很可能我在做傻事

这里有一个模式:

BEGIN;
CREATE TABLE "homepage_user" (
    "username" varchar(20) NOT NULL PRIMARY KEY,
    "first_name" varchar(20) NOT NULL,
    "last_name" varchar(20) NOT NULL
)
;
CREATE TABLE "homepage_oncall" (
    "id" integer NOT NULL PRIMARY KEY,
    "user_id" varchar(20) NOT NULL REFERENCES "homepage_user" ("username"),
    "start_date" datetime,
    "end_date" datetime
)
;

COMMIT;

然后当我从django的交互式shell查询数据时:

^{pr2}$

但是-任何试图查询“主页”的尝试_oncall.user用户名“将会受到严厉的谴责:

>>> query = cursor.execute('SELECT first_name, last_name FROM homepage_user WHERE homepage_user.username = homepage_oncall.user_id AND NOW() BETWEEN homepage_oncall.start_date AND homepage_oncall.end_date')
...
DatabaseError: no such column: homepage_oncall.user_id

我看了一下这里,似乎这个问题是在创建一个模式之后编辑它之后出现的-但是(在没有解决这个问题之后管理.py实际上,我删除并重新创建了整个数据库,以排除这一点——反正里面什么也没有

谢谢, 亚瑟


Tags: nameid数据库datecreatetable模式username
1条回答
网友
1楼 · 发布于 2024-06-01 08:15:07

你的问题出在你的SQL中。您SELECT来自一个表并尝试在另一个表上应用WHERE条件,而不执行隐式或显式JOIN。在

Django还提供了一个非常好的ORM,因此我建议您坚持使用它,而不是对数据库运行原始查询,特别是如果您不擅长编写SQL查询的话

相关问题 更多 >