Vous n'êtes pas identifié(e).
Bonjour,
J'ai 3 tables avec un foreignkey qui les relient et je souhaite pouvoir afficher un tableau avec l'ensemble, ou un partie des 3 tables:
(Les tables si dessous sont un exemple)
moduls.py
class Utilisateur(models.Model):
user = models.CharField(max_length=10)
class Voiture(models.Model):
Responsable=models.ForeignKey(Utilisateur)
Type=models.CharField(max_length=20)
class Immatriculation(models.Model):
responsable=models.ForeignKey(Utilisateur)
ville= models.CharField(max_length=30)
Et je souhaite faire une requête pour avoir l'ensemble sous forme de tableau.
J'ai lu que l'on pouvait utiliser "select_related()" mais je ne vois pas comment ?!
Comment afficher le résultat dans la page html ?
Merci
Hors ligne
Le select_related permet d'optimiser le nombre de requêtes, mais il ne change rien au fonctionnement de base.
En revanche, tes Models sont étranges. Logiquement, on immatricule une voiture, pas un utilisateur
Pour comprendre le select_related: https://docs.djangoproject.com/fr/1.8/r … ct-related
Hors ligne
Bonjour, c'était un exemple !!
J'ai réussi pour faire la jointure entre deux tables:
requete = Voiture.objects.select_related("utilisateur").all().filter(id=id)
Mais comment inclure la 3 tables ? Faut-il faire un Manytomany ?
Merci
Hors ligne
Pour inclure les 3 tables, je te conseille de faire un diagramme de classes pour que tu puisses mieux visualiser les relations et ensuite construire la requête correctement.
Hors ligne
Bonjour,
Je me permets de rebondir sur cette question car j'ai le même problème.
Pour me mettre dans une situation quasi identique, je voudrais faire une requete avec tous les éléments de la table voiture ainsi que la ville du responsable.
Cela semble très simple en sql mais je n'arrive pas à sortir toutes ces informations sous django.
Le resultats dans cet exemple pourrait être :
Voiture.object.all() ne me donne pas la ville.
J'attends comme resultat :
Responsable, type,Ville
Merci d'avance
Dernière modification par djang (29-09-2015 15:14:36)
Hors ligne
Avec ce model (que je pense mauvais) on peut avoir LES villes DES immatriculations du responsable d'une voiture données.
imm_gen = (v.responsable.immatriculation_set.all() for v in Voiture.objects.all())
(imm.ville for imm in imm_gen)
Des select_related peuvent être ajoutés pour optimisation.
=================================================
Nouveau sur forum.
Développe un site python3 / django / django-cms sur un vps / d'ovh
Hors ligne