J'ai un projet Python (je suis assez nouveau sur Python), et sur l'une des pages web, il y a une liste déroulante qui devrait afficher une liste de tous les projets dont les champs 'status' sont définis sur 'live'.Python- comment interroger la base de données par classe
Il semble que certains objets particuliers ne s'affichent pas dans cette zone de liste déroulante. Par conséquent, je souhaite interroger manuellement la base de données pour vérifier à quel champ d'état est défini. Comment puis-je interroger manuellement la base de données pour ces projets particuliers par leur «nom de projet»/«code de projet», dont je sais que les deux sont uniques?
J'ai essayé d'obtenir une liste de tous les projets dans la coquille, afin que je puisse interroger cette liste par project_name
pour les projets particuliers que je veux utiliser les commandes:
from projects.models import Project
prjcts = []
prjcts = Project.objects.all()
Ce GETS all des objets Project
et les affecte à la liste prjcts
. Je veux maintenant interroger cette liste pour un projet particulier, et ont essayé de le faire comme ceci:
6Stoke = prjcts.get(project_code = 6SPR)
Mon intention était que le projet avec la project_code
dont la valeur a été 6SPR
serait affecté à la 6Stoke
variables, de sorte que Je pourrais alors trouver regarder toutes les informations pour ce projet particulier. Cependant, quand j'ai essayé d'exécuter cette ligne dans la console, je suis un avertissement
SyntaxError: invalid syntax
qui a mis en évidence la fin de la 6Stoke
partie de la ligne.
Quel est le problème avec ma syntaxe ici? Comment puis-je obtenir le projet qui a le project_code
spécifié et l'assigner à une variable?
Modifier
Ah, merci ok-. J'ai changé le nom de la variable, et a couru à nouveau la requête, attribuant ses résultats à la sixStokeList
variable, ce
sixStokeList = Project.objects.filter(project_code = "6SPR")
ce retourné deux articles, et après avoir imprimé les éléments du tableau à la console, à savoir
sixStokeList[0]
&sixStokeList[1]
, je sais que celui que je veux, donc j'ai assigné qu'un particulier à une variable:sixStoke = sixStokeList [1]
J'ai ensuite tapé sixStoke.
et appuyé sur 'tab' dans la console pour voir ce qui est disponible pour cette variable. Je l'ai fait la même chose avec un autre projet, à savoir
theFoss = Project.objects.filter(project_code= "1TF")
theFoss. (& pressed 'tab')
La liste des options disponibles en fonction après avoir tapé variable
+ .
+ tab
était différent pour chaque instance project
, même si je les avais obtenu à la fois exactement de la même manière, ce qui m'indiquerait qu'ils ne sont pas des instances de la même classe ... comment cela peut-il être, étant donné que je les ai tous les deux en interrogeant la même classe?
Il est juste que les variables ne peuvent pas commencer avec des chiffres en python –
Vous ne pouvez pas nommer un début variable avec un nombre. Appelez le 'SixStoke', ou' Prj6Stoke', ou 'Stoke6' ou quelque chose. –
le 6SPR (code du projet) est une chaîne? peut-être vous devriez utiliser comme ceci: '6Stoke = prjcts.get (project_code = '6SPR')' – Abiezer