[PYTHON] Comment obtenir plusieurs objets de modèle au hasard dans Django

Environnement de développement

La façon la plus simple d'écrire

views.py


from django.views.generic import ListView

from .models import SampleModel


class SampleListView(ListView):
    model = SampleModel

    def get_queryset(self):
        return SampleModel.objects.order_by('?')[:5]

-- .order_by ('?') `` `` Ordre aléatoire des objets -- [: 5] `` `Tranche du début au 5ème ([0] ~ [4]) du tableau

Une petite écriture longue

views.py


from django.views.generic import ListView

from .models import SampleModel

import random


class SampleListView(ListView):
    model = SampleModel

    def get_queryset(self):
        pks = SampleModel.objects.values_list('pk', flat=True)
        pks_list = list(pks)
        pks_random = random.sample(pks_list, 5)
        queryset = SampleModel.objects.filter(pk__in=pks_random)

        return queryset

--``` .values_list ('pk', flat = True) `` `Obtenir uniquement la valeur pk de chaque objet de la liste

finalement

Si vous avez une manière plus intelligente d'écrire que les deux ci-dessus, veuillez nous le faire savoir dans les commentaires.

Recommended Posts

Comment obtenir plusieurs objets de modèle au hasard dans Django
Comment refléter CSS dans Django
Comment démarrer avec Django
Comment supprimer des sessions expirées dans Django
Comment obtenir stacktrace en python
Comment faire des événements envoyés par le serveur dans Django
Pour trouver le nom de la vue avec l'espace de noms à partir de l'URL (path_info) dans Django
Ajouter dynamiquement des champs aux objets Form avec Django
Comment implémenter la fonctionnalité de type helper Rails dans Django
Comment obtenir les résultats de l'identifiant dans Celery
Comment refléter ImageField dans Django + Docker (oreiller)
[Django] Comment obtenir des données en spécifiant SQL.
Comment obtenir de l'aide dans un shell interactif
Comment obtenir les fichiers dans le dossier [Python]
Comment créer une API Rest dans Django
Modifications du modèle dans Django
Comment vous permettre d'essayer les fonctionnalités du framework django rest dans un seul fichier
Comment améliorer la surveillance des métriques de modèle avec Amazon SageMaker
Comment obtenir le nom de la variable lui-même en python
Comment obtenir le nombre de chiffres en Python
Comment écrire une concaténation de chaînes sur plusieurs lignes en Python
Comment afficher plusieurs images d'une galaxie en tuiles
Comment utiliser le bootstrap dans la vue de classe générique Django
Comment télécharger des fichiers dans la vue de classe générique Django
Comment utiliser le modèle appris dans Lobe en Python
Comment utiliser Decorator dans Django et comment le créer
Comment récupérer plusieurs tableaux à l'aide de slice en python.
Comment référencer des fichiers statiques dans un projet Django
Comment utiliser le modèle japonais Spacy avec Google Colaboratory
Comment obtenir des histogrammes RVB et HSV avec OpenCV
Comment utiliser fixture dans Django pour saisir des exemples de données associés au modèle utilisateur
Comment développer en Python
Comment écrire une validation personnalisée dans Django REST Framework
Comment adapter plusieurs bibliothèques d'apprentissage automatique en une seule fois
Comment se débarrasser des pictogrammes personnalisés du serveur dans message.content
[Go language] Comment obtenir l'entrée du terminal en temps réel
Comment découper un bloc de plusieurs tableaux à partir d'un multiple en Python
Comment utiliser ORM / Query Builder Orator de type Laravel avec Django
Comment vérifier le comportement d'ORM avec un fichier avec django
Comment mettre à jour les informations utilisateur sur Django RemoteUserMiddleware login
Comment définir plusieurs variables dans une instruction Python for
[Django] Comment donner des valeurs d'entrée à l'avance avec ModelForm
J'ai essayé "Comment obtenir une méthode décorée en Python"
Comment générer une requête à l'aide de l'opérateur IN dans Django
Comment obtenir le pointeur d'instruction (= compteur de programme) dans le noyau Linux
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Comment obtenir toutes les clés et valeurs du dictionnaire
Comment obtenir une liste d'exceptions intégrées pour python
[TF] Comment charger / enregistrer le modèle et le paramètre dans Keras
Dans Django, comment abréger la longue chaîne de caractères affichée au milieu ...
Comment obtenir un aperçu de vos données dans Pandas
[Shell] Comment obtenir la branche distante par défaut avec Git
Je voulais supprimer plusieurs objets en s3 avec boto3
Comment créer un enregistrement en collant une relation au modèle source d'héritage dans le modèle hérité par Django
[Python] Comment faire PCA avec Python
Comment gérer une session dans SQLAlchemy