excuses pour la question noobish, je suis complètement nouveau à Python et à Django et à essayer de faire ma première application.
J'ai une classe simple p> à laquelle j'ai ajouté un seul enregistrement. Je peux accéder à cela avec p> Cependant, si j'essaie d'utiliser la syntaxe DOT pour accéder à ses attributs, j'obtiens l'erreur suivante P> def __unicode__(self):
return self.title
4 Réponses :
Filtre renvoie un querySet et non l'objet unique que vous recherchez. Utilisez-vous à la place du filtre. P>
méthodes qui renvoient de nouveaux querySets p>
Méthodes qui ne renvoient pas QuerySetsts P>
http://docs.djangoproject.com/fr/dev/ref / Modèles / QuerySets / P>
comme La documentation explique, Filtre code> Toujours em> retourne un requérant, qui est une collection d'éléments similaire à la liste, même si un seul élément correspond à la condition de filtrage. Donc, vous pouvez trancher la liste pour accéder à votre élément -
environ [0] code> - ou, mieux, utiliser
get () code> à la place:
about = About.objects.get(id=1)
print about.title
Dans votre cas, alternativement, utilisez obtenez () pour récupérer une seule instance du modèle : p> sur code> est un QuoiySet Objet , pas une instance de votre modèle. Essayez
Je pose également une question naïve. Pourquoi l'avons-nous comme Model.ObjectS.get () ou Model.ObjectS.all () comme ça et pas directement modèle.get () ou Model.All () Que réalisons-nous avec des objets?
@user - 'Objets' est le nom de ce que nous appelons un "gestionnaire" et c'est le mécanisme par lequel vous interface avec les modèles Django. «Objets» est le nom par défaut, mais vous pouvez le remplacer comme vous le souhaitez, ou écrivez également vos propres responsables, si vous le souhaitez. Beaucoup d'informations dans les docs sur les gestionnaires, jetez un coup d'oeil :)
Si vous voulez obtenir une seule ligne maintenant à propos de code> est un objet (une ligne) p>
Filtre Code> Liste des retours, afin d'accéder aux éléments de la liste, vous devez utiliser
index code> (environ [0]) ou
pour boucle code> .mbut
Obtenez code> Retour exactement une rangée. p> p>