2009-10-09 5 views

Répondre

38

Je ne sais pas si vous avez vraiment besoin d'un exemple, il est assez facile:

  • si vous le savez est un objet qui correspond à votre requête, utilisez get. Cela échouera si c'est plus d'un. Sinon, utilisez le filtre, qui vous donne une liste d'objets.

Pour être plus précis:

  • MyTable.objects.get(id=x).whatever vous donne la propriété whatever de votre objet.

get() soulève MultipleObjectsReturned si plus d'un objet a été trouvé. L'exception MultipleObjectsReturned est un attribut de la classe .

get() déclenche une exception DoesNotExist si un objet n'a pas été trouvé pour les paramètres donnés . Cette exception est également un attribut de la classe de modèle.

  • MyTable.objects.filter(somecolumn=x) est non seulement utilisable comme une liste, mais vous pouvez également interroger à nouveau, quelque chose comme MyTable.objects.filter(somecolumn=x).order_by('date').
  • La raison en est qu'il ne s'agit pas réellement d'une liste mais d'un objet de requête. Vous pouvez itérer à travers elle comme à travers une liste: for obj in MyTable.objects.filter(somecolumn=x)
Questions connexes