У меня есть проект Python (я довольно новичок в Python), и на одной из веб-страниц есть раскрывающийся список, который должен отображать список всех проектов чьи поля «статус» настроены на «живые».Python - как запросить базу данных по классу
Похоже, что несколько отдельных объектов не отображаются в этом раскрывающемся списке, поэтому я хочу вручную запросить базу данных, чтобы проверить, для чего установлены их поля статуса.
Как вручную запросить базу данных для этих конкретных проектов по их «имени проекта»/«код проекта», оба из которых я знаю, уникальны?
Я попытался получить список всех проектов, в оболочке, так что я могу запросить этот список по project_name
для конкретных проектов, которые я хочу с помощью команды:
from projects.models import Project
prjcts = []
prjcts = Project.objects.all()
Это становится все объектов Project
и присваивает их списку prjcts
. Теперь я хочу, чтобы запросить этот список для конкретного проекта, и старался делать так, как это:
6Stoke = prjcts.get(project_code = 6SPR)
Мое намерение состояло в том, что проект с project_code
, значение которого было 6SPR
будет присвоено переменной 6Stoke
, так что Затем я мог бы найти всю информацию для этого конкретного проекта. Однако, когда я попытался запустить эту строку в консоли, я получил предупреждение
SyntaxError: invalid syntax
в котором подчеркивается конец 6Stoke
части линии.
Что не так с моим синтаксисом здесь? Как я могу получить проект с указанным project_code
и назначить его переменной?
Редактировать
Ах, OK- спасибо. Я изменил имя переменного, и снова запускал запрос, назначая его результаты переменной sixStokeList
, т.е.
sixStokeList = Project.objects.filter(project_code = "6SPR")
это вернулось два пункта, и напечатав элементы массива на консоль, то есть
sixStokeList[0]
&sixStokeList[1]
, я знаю, какой я хочу, так что я назначен этот конкретный один переменной с:sixStoke = sixStokeList [1]
Затем я набрал sixStoke.
и нажал «вкладку» на консоли, чтобы узнать, что доступно этой переменной. Я сделал то же самое с другим проектом, т.е.
theFoss = Project.objects.filter(project_code= "1TF")
theFoss. (& pressed 'tab')
Список доступных опций данных после ввода variable
+ .
+ tab
была различной для каждого project
, например, несмотря на то, я получил их обоих в точно таким же образом, что укажет мне, что они не являются экземплярами одного и того же класса ... как это может быть, учитывая, что я получил их обоих, запросив один класс?
Это просто, что переменные не может начинаться с цифрами питона –
Вы не можете назвать переменное начало с номером. Назовите его «SixStoke» или «Prj6Stoke» или «Stoke6» или что-то в этом роде. –
6SPR (код проекта) является строкой? возможно, вам следует использовать вот так: '6Stoke = prjcts.get (project_code = '6SPR')' – Abiezer