Python-如何按类查询数据库
我有一个Python项目(我对Python很陌生),在其中一个网页上,有一个下拉框,其中应该显示“status”字段设置为“live”的所有项目的列表 这个下拉框中似乎没有显示几个特定的对象,因此我想手动查询数据库,以检查它们的“状态”字段设置为什么 如何通过“项目名称”/“项目代码”手动查询这些特定项目的数据库,我知道这两个项目都是唯一的 我已尝试获取shell中所有项目的列表,以便通过Python-如何按类查询数据库,python,django,get,class-instance-variables,Python,Django,Get,Class Instance Variables,我有一个Python项目(我对Python很陌生),在其中一个网页上,有一个下拉框,其中应该显示“status”字段设置为“live”的所有项目的列表 这个下拉框中似乎没有显示几个特定的对象,因此我想手动查询数据库,以检查它们的“状态”字段设置为什么 如何通过“项目名称”/“项目代码”手动查询这些特定项目的数据库,我知道这两个项目都是唯一的 我已尝试获取shell中所有项目的列表,以便通过project\u name查询该列表,以使用以下命令查找我想要的特定项目: from projects.m
project\u name
查询该列表,以使用以下命令查找我想要的特定项目:
from projects.models import Project
prjcts = []
prjcts = Project.objects.all()
这将获取所有项目
对象,并将它们分配给列表prjcts
。现在,我想查询某个特定项目的列表,并尝试这样做:
6Stoke = prjcts.get(project_code = 6SPR)
我的意图是将值为6SPR
的project\u code
项目分配给变量6Stoke
,这样我就可以找到该特定项目的所有信息。然而,当我尝试在控制台中运行这一行时,我得到了一个
SyntaxError:无效语法
突出显示该行6Stoke
部分末尾的警告
我的语法有什么问题?如何获取具有指定project\u code
的项目并将其分配给变量
编辑
啊,好的,谢谢。我更改了变量名,然后再次运行查询,将其结果分配给变量sixStokeList
,即
sixStokeList = Project.objects.filter(project_code = "6SPR")
- 这返回了两个项目,并将数组的元素打印到控制台,即
&sixStokeList[0]
,我知道我想要哪一个,因此我已将该特定项目分配给一个变量: 六斯托克=六斯托克列表[1]sixStokeList[1]
sixStoke.
,并按下控制台中的“tab”以查看此变量可用的内容。我对另一个项目也做了同样的事情,即
theFoss = Project.objects.filter(project_code= "1TF")
theFoss. (& pressed 'tab')
对于每个
项目
实例,键入变量
+
+选项卡
后给出的可用选项列表是不同的,尽管我以完全相同的方式获得了它们,这将向我表明它们不是同一类的实例。。。如果我通过查询同一个类得到了这两个变量,这怎么可能呢?你不能命名一个以数字开头的变量你不能命名一个以数字开头的变量只是在python中变量不能以数字开头你不能命名一个以数字开头的变量。称它为SixStoke
,或Prj6Stoke
,或Stoke6
或其他什么。6SPR(项目代码)是字符串吗?也许您应该这样使用:6Stoke=prjcts.get(project_code='6SPR')
只是python中变量不能以数字开头,不能以数字开头命名变量。称它为SixStoke
,或Prj6Stoke
,或Stoke6
或其他什么。6SPR(项目代码)是字符串吗?也许你应该这样使用:6Stoke=prjcts.get(project_code='6SPR')
Ah,好的。非常感谢。我删除了这个数字,并且能够将类实例分配给变量。我使用相同的filter()
方法为不同的变量分配了几个实例,只是为我正在筛选的project\u code
传递了一个不同的值。。。但这两个变量的实例似乎属于不同的类,因为它们可用的选项不同——我如何通过查询同一个类得到这两个变量?我已经更新了我的问题,包括这个细节…啊,好的。非常感谢。我删除了这个数字,并且能够将类实例分配给变量。我使用相同的filter()
方法为不同的变量分配了几个实例,只是为我正在筛选的project\u code
传递了一个不同的值。。。但这两个变量的实例似乎属于不同的类,因为它们可用的选项不同——我如何通过查询同一个类得到这两个变量?我已经更新了我的问题,包括这个细节。。。