6
votes

Sortie Django modèle en tant que table

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: xxx

voici le HTML pour la sortieTable.html: xxx

Qu'est-ce que je fais mal? Ça ne marche pas. Maintenant, il passe correctement le modèle, car si je change my_model () vers my_model.Object.all () puis la sortie comme tout simplement {{sortie} } alors cela me montre ce que je verrais dans la coquille Django.


0 commentaires

6 Réponses :


0
votes

Il n'y a pas de méthode as_table sur une instance de modèle ( myModel () ) ou sur QuerySets ( myModel.Object.All () ) . Vous avez peut-être vu as_table comme La méthode des formulaires as_table . Vous n'en avez pas de forme là-bas.

Si vous souhaitez imprimer une instance de modèle / un querySet comme une table, vous devrez le concevoir vous-même.


0 commentaires

1
votes

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>


0 commentaires

2
votes

Alors, ce que vous devez faire est ce que vous devez faire est ce qui suit:

1) Ajouter

de Django.Forms Importer Modelform à vos modèles.py

2) ajoutez xxx

3) dans vos vues.py, changez sortie = my_model () à sortie = my_model_form () < / Code>

Vous êtes tous ensemble. Donc, l'astuce est d'hériter de votre formulaire de votre modèle d'origine.


1 commentaires

Si vous rendant une instance de modèle existante, do sortie = my_model_form (instance = my_model)



0
votes

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. :)


0 commentaires

0
votes

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 templatetags / your_tags_file.py (N'oubliez pas le fichier __init__.py dans le dossier TemplateTags): xxx

dans le modèle que vous pouvez maintenant Il suffit de faire: xxx

Cela rendra le modèle dans une table simple pour vous. Vous pouvez facilement ajouter n'importe quel THEAD et tbody tel que vous le voyez en modifiant la logique de la manière dont RET est généré. J'espère que cela aide quelqu'un.


0 commentaires

1
votes

the modèles.model class n'a pas de méthode as_table () comme les formulaires .Modelform classe.

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 > xxx

myApp / modèles / myApp / de sortieTable.html xxx

avec cette implémentation Vous pouvez transmettre les attributs de quel modèle que vous souhaitez afficher et dans quel ordre.

myapp / vues.py xxx

i Aussi, comme ce code HTML et Python proprement séparé.


0 commentaires