Je développe une application Web pour les commandes de suivi. Et j'aimerais afficher toutes les commandes créées par un utilisateur via DétacherView.
modèles.py p> vues.py p> si Je supprime le défaire get_queryset () code> dans les points de vue.py, il ne montre que les utilisateurs eid et nom. Je ne sais pas comment je peux obtenir toutes les commandes attribuées à l'utilisateur en question. P> p>
3 Réponses :
Dans le modèle Essayez:
{% for order in user.order_set.all %}
<p>{{ order.order_number }}</p>
{% endfor %}
Django vous permet de suivre les relations "à l'envers", ce qui signifie que vous pouvez interroger tous les enregistrements d'un mannequin qui a une relation FK ou ONETOne à votre modèle de modèle.
{% for order in user.order_set.all %}... {% endfor %}
Est-ce mieux, Nether, plus rapide ou cela donne-t-il plus d'options que generics.detailview code>? .. Si oui ou ne fournissez pas de contexte autour de votre réponse. Comme étant donné son aout-marqué par les robots pour le retrait. (De l'avis).
@ ZF007 n'est pas mieux ni plus rapide, c'est différent. Le détailView n'est pas le problème ici, est l'utilisation de l'orj.
(Beaucoup de réponses mieux avec votre mise à jour; lorsque vous lisez ce commentaire, vous pouvez le signaler pour le retrait; pas besoin de laisser ces commentaires personnels ici pour l'éternité).
Il y a deux problèmes avec votre code. Le premier a été mentionné par Higor Rossato dans les commentaires, si vous souhaitez répertorier les choses Stainle, vous devez utiliser un Vous voulez generics.listview code>. Vous changez également le modèle code> code> et get_queryset code> de votre vue. modèle = commander code> et p> def get_queryset(self):
Order.objects.filter(user=self.request.user).order_by("-id")
Si vous souhaitez répertorier Tous i> articles (commandes, utilisateurs), vous devez utiliser un
generics.listview code> au lieu d'ungenerics.detailview code>