J'ai une définition de vue qui (tente de) génère un modèle comme une table. C'est ce que j'ai jusqu'à présent: voici le HTML pour la sortieTable.html: p> Qu'est-ce que je fais mal? Ça ne marche pas. Maintenant, il passe correctement le modèle, car si je change my_model () code> vers
my_model.Object.all () code> puis la sortie comme tout simplement
{{sortie} } code> alors cela me montre ce que je verrais dans la coquille Django. P> p>
6 Réponses :
Il n'y a pas de méthode Si vous souhaitez imprimer une instance de modèle / un querySet comme une table, vous devrez le concevoir vous-même. P> as_table code> sur une instance de modèle (
myModel () code>) ou sur QuerySets (
myModel.Object.All () code>) . Vous avez peut-être vu
as_table code> comme La méthode des formulaires
as_table code>
. Vous n'en avez pas de forme là-bas. P>
Si vous cherchez simplement à générer un modèle spécifique, changez votre modèle à quelque chose comme
<tr> <td>Name:</td> <td>{{ output.name}}</td> </tr>
Alors, ce que vous devez faire est ce que vous devez faire est ce qui suit:
1) Ajouter P>
2) ajoutez p> 3) dans vos vues.py, changez Vous êtes tous ensemble. Donc, l'astuce est d'hériter de votre formulaire de votre modèle d'origine. p> p> de Django.Forms Importer Modelform code> à vos modèles.py p>
sortie = my_model () code> à
sortie = my_model_form () < / Code> P>
Si vous rendant une instance de modèle existante, do sortie = my_model_form (instance = my_model) code>
omg c'est vieux mais Vues génériques semble être un bon ajustement pour ce problème, pour moi au moins. Une liste de détails de la liste devrait m'aider à courir plus vite. :) p>
J'ai proposé une solution qui a travaillé pour mes besoins spécifiques qui rend les données de tout modèle de modèle dans des rangées de table. Ajoutez le filtre suivant dans dans le modèle que vous pouvez maintenant Il suffit de faire: p> Cela rendra le modèle dans une table simple pour vous. Vous pouvez facilement ajouter n'importe quel templatetags / your_tags_file.py code> (N'oubliez pas le fichier __init__.py dans le dossier TemplateTags):
THEAD code> et
tbody code> tel que vous le voyez en modifiant la logique de la manière dont
RET code> est généré. J'espère que cela aide quelqu'un. P> p>
the My La solution consistait également à utiliser des étiquettes de modèle. Je suis allé avec un Tag d'inclusion . < /p> Code ,MyApp/TemplateTags/model_helpers.pyRewe_PODE >/P> MyApp/Templates/myapp/model_Table.htmlle_Model_Table.html > p> avec cette implémentation Vous pouvez transmettre les attributs de quel modèle que vous souhaitez afficher et dans quel ordre. p> i Aussi, comme ce code HTML et Python proprement séparé. P> p> modèles.model code> class n'a pas de méthode
as_table () code> comme les formulaires
.Modelform code> classe.
myApp / modèles / myApp / de sortieTable.html code> p>
myapp / vues.py code> p>