在django视图中使用过滤器查询数据库失败



只是在浏览Django教程,我正在玩和测试的东西。

我的问题是,为什么下面这行可以正常工作,并且让我顺利进入页面呢?

test =  Choice.choices.all()

而下面的过滤器行给了我错误消息ValueError: too many values to unpack (expected 2)

test =  Choice.choices.get("question_id=6")

即使我尝试下面两行,它也不工作。不知道发生了什么或为什么

test =  Choice.choices.get("question_id=6")[0]
test =  Choice.choices.get("question_id=6")[0].question_text

我觉得我需要真正了解发生了什么以及为什么,这样我才能在将来真正做适当的查询

这是因为语法错误。应该是:

test =  Choice.choices.get(question_id="6")

或者,如果question_id字段是int(很确定是):

test =  Choice.choices.get(question_id=6)

基本上,括号(参数)里面的内容是SQLWHERE条件的Django翻译,您可以在其中指定要在结果中包含的字段和值。事实上,它对应于:SELECT * FROM table WHERE question_id=6

你把这个where条件放在一个字符串中,但是.get()方法不接受字符串。

让我知道它是否有效!

相关内容

  • 没有找到相关文章