La sortie de Django Modèle de Table
J'ai une définition de la vue qui (tente de) sorties d'un modèle sous forme d'un tableau. C'est ce que j'ai à ce jour:
def output_table(request):
output = My_Model()
return render_to_response('outputtable.html', {'output': output})
Voici le code HTML outputtable.html:
<html>
<table>
{{ output.as_table }}
</table>
</html>
Ce que je fais mal? Il ne fonctionne pas. Maintenant, c'est en passant le modèle correctement, parce que si je change My_Model() pour My_Model.objets.tous les() et ensuite de sortie comme {{ sortie }} ensuite, il me montre ce que je vois dans le Django shell.
OriginalL'auteur Reznor | 2010-02-17
Vous devez vous connecter pour publier un commentaire.
Donc ce que vous devez faire est le suivant:
1) ajouter
from django.forms import ModelForm
à votre models.py2) ajouter
3) dans votre views.py, changement
output = My_Model()
àoutput = My_Model_Form()
Maintenant vous êtes tous ensemble. Donc, l'astuce est d'hériter de votre Forme de votre modèle d'origine.
output = My_Model_Form(instance=my_model)
OriginalL'auteur DrDee
La
models.Model
classe ne dispose pas d'une méthodeas_table()
comme leforms.ModelForm
classe.Ma solution a été d'utiliser des balises de modèle. Je suis allé avec une l'inclusion de la balise.
myapp/templatetags/model_helpers.py
myapp/templates/myapp/model_table.html
myapp/templates/myapp/outputtable.html
Avec cette application, vous pouvez passer le modèle des attributs que vous voulez afficher et dans quel ordre.
myapp/views.py
J'aime aussi cette séparer proprement html et le code python.
OriginalL'auteur cjav
Il n'existe pas de méthode
as_table
sur une instance du modèle (MyModel()
)ou sur Querysets (MyModel.objects.all()
). Vous avez peut-être vuas_table
comme les formes de la méthodeas_table
. Vous n'avez pas de formulaire.Si vous souhaitez imprimer un modèle d'exemple/un queryset comme un tableau, vous aurez à concevoir vous-même.
OriginalL'auteur stefanw
Si vous cherchez juste à la sortie d'un modèle spécifique, de modifier votre modèle de quelque chose comme
pour tous les champs qui vous intéressent. Si c'est quelque chose que vous voulez être en mesure de le faire pour n'importe quel modèle dans votre application, jetez un oeil à ce extrait de. Que serait pour vous une collection de champs en boucle.
OriginalL'auteur Tom
OMG c'est vieux, mais Générique Vues semble être une bonne solution pour ce problème, du moins pour moi. Une Liste de la vue de détail devrait m'aider à courir plus vite. 🙂
OriginalL'auteur brokenthorn
Je suis venu avec une solution qui a fonctionné pour mon besoin spécifique qui rend toute simple du modèle de données dans les lignes de la table. Ajouter le filtre suivant dans
templatetags/your_tags_file.py
(n'oubliez pas l' __init__.py fichier dans le templatetags dossier):Dans le modèle de maintenant, vous pouvez simplement faire:
Cela rendra le modèle dans un tableau simple pour vous. Vous pouvez facilement ajouter n'importe souhaité
thead
ettbody
logique que vous voyez l'ajustement par la modification de la logique de la façon dontret
est généré. Espérons que cela aide quelqu'un.OriginalL'auteur Fydo