Comment puis-je obtenir une liste de tous les identifiants/clés primaires pour une table. Dis que j'ai cette table:
class Blog(models.Model)
title = models.CharField()
body = models.CharField()
author = models.ForeignKey(Author)
supposons que le champ author est un objet Author. Je veux obtenir tous les identifiants de Blog où auteur = auteur
je sais que je peux utiliser
blogs = Blog.objects.filter(author=author)
et obtenir tous les objets de blog dans un formulaire de liste, mais comment puis-je obtenir la liste IDS/PK? Semblable à "Sélectionner l'identifiant du blog où Auteur = auteur"
Vous pouvez le faire en utilisant la méthode values_list
.
blogs = Blog.objects.filter(author=author).values_list('id', flat=True)
Voir plus à la documentation Django queryset .
Blog.objects.filter(author=author).values_list('id', flat=True)
values_list()
donne une liste de lignes, chaque ligne étant un tuple de tous les champs que vous spécifiez en tant qu'arguments, dans l'ordre. Si vous ne transmettez qu'un seul champ en tant qu'argument, vous pouvez également spécifier flat=True
pour obtenir une liste simple au lieu d'une liste de n-uplets.
Blog.objects.filter (author = author) .values_list ('pk', flat = True)
Mettez 'pk' à la place 'id', juste pour les meilleures pratiques.