167 votes

Requête de base de données Django : Comment obtenir un objet par identifiant ?

Django crée automatiquement un champ id comme clé primaire.

Maintenant, j'ai besoin d'obtenir l'objet par cet identifiant.

 object = Class.objects.filter() 

Comment écrire ce filtre ?

290voto

iridescent Points 472

Si vous voulez obtenir un objet, utiliser get() est plus simple :

 obj = Class.objects.get(pk=this_object_id)

10voto

Loaderon Points 952

Vous pouvez également utiliser le raccourci django get_object_or_404. Il génère une erreur 404 si l'objet n'est pas trouvé.

4voto

Pratik Randad Points 31

Vous pouvez utiliser:

 objects_all=Class.objects.filter(filter_condition="")

Cela renverra un ensemble de requêtes même s'il obtient un objet. Si vous avez besoin d'exactement un objet, utilisez :

 obj=Class.objects.get(conditon="")

3voto

Anthony Points 137

Vous pouvez également faire :

 obj = ClassModel.get_by_id(object_id)

Cela fonctionne, mais il se peut que je ne sois pas sûr que ce soit pris en charge dans Django 2.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X