Django

ORM Django avancé

Raw SQL, custom managers, query expressions, database functions, atomic transactions, select_for_update, race conditions, database routers

28 questions d'entretien·
Senior
1

Quelle est la différence principale entre Model.objects.raw() et connection.cursor() pour exécuter du SQL brut dans Django ?

Réponse

Model.objects.raw() retourne des instances de modèle mappées automatiquement, ce qui permet de conserver les avantages de l'ORM comme l'accès aux attributs et aux relations. connection.cursor() retourne un curseur de base de données brut avec des tuples, offrant plus de flexibilité pour les requêtes non liées à un modèle spécifique, mais nécessitant une gestion manuelle des résultats.

2

Quel est l'avantage principal de créer un custom Manager dans Django plutôt que d'ajouter des méthodes directement au modèle ?

Réponse

Un custom Manager encapsule la logique de requêtes au niveau table, permettant de chaîner des méthodes avec le QuerySet et de réutiliser cette logique partout où le modèle est utilisé. Les méthodes de modèle opèrent sur des instances individuelles. Le Manager permet aussi de modifier le QuerySet par défaut avec get_queryset().

3

Comment implémenter un custom QuerySet pour permettre le chaînage de méthodes personnalisées dans Django ?

Réponse

Pour permettre le chaînage, il faut créer une classe héritant de QuerySet avec des méthodes retournant self ou un QuerySet filtré. Ensuite, utiliser le custom QuerySet via Manager.from_queryset() ou définir un Manager personnalisé avec get_queryset() retournant le custom QuerySet. Cela permet d'appeler Model.objects.custom_method().filter().

4

Quelle expression Django utiliser pour incrémenter atomiquement un compteur dans la base de données sans risque de race condition ?

5

Quelle est la fonction de transaction.atomic() et comment gère-t-elle les exceptions dans Django ?

+25 questions d'entretien

Maîtrise Django pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement