3 votes

modèles génériques django

Donc, les vues génériques sont plutôt cool, mais ce qui m'intéresse, c'est quelque chose qui soit un modèle générique.

donc par exemple, je peux lui donner un objet et il va le transformer en chaîne pour moi.

ou si je lui donne une liste, il va simplement itérer sur les objets et les transformer en ul (ou tr, ou tout ce qu'il juge nécessaire).

pour la plupart des utilisations, vous n'en aurez pas besoin. Je viens de créer quelque chose rapidement pour un ami (une application de stock de barres, si vous voulez savoir), et je n'ai pas envie d'écrire des modèles.

5voto

IfLoop Points 59461

S'il existe un modèle django pour cela, vous pouvez simplement vous en tenir à django.contrib.admin ou django.contrib.databrowse . Si ce n'est pas le cas, vous pouvez vous débrouiller en ignorant complètement le modèle django. exemple :

from django.http import HttpResponse
import datetime

def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)

Mais bien sûr, vous vouliez éviter d'écrire autant, donc au lieu de faire du html, nous pouvons utiliser du texte brut et la fonction pprint module :

from django.http import HttpResponse
import datetime
from pprint import pformat

def current_datetime(request):
    now = datetime.datetime.now()
    return HttpResponse(pformat(now), mimetype="text/plain")

éditer : Hmm... cela semble être quelque chose qu'un décorateur de vue devrait gérer :

from django.http import HttpResponse
import datetime
import pprint

def prettyprint(fun):
    return lambda request:HttpResponse(
            pprint.pformat(fun(request)), mimetype="text/plain")

@prettyprint
def current_datetime(request):
    return datetime.datetime.now()

1voto

Rasiel Points 894

Je ne vois pas comment vous pourriez vous passer de l'écriture de modèles, surtout si vous souhaitez les mettre en forme, même légèrement.

Cependant, vous pouvez réutiliser les modèles de base, par exemple en créant un modèle générique object_list.html et object_detail.html.

qui contiendra essentiellement les informations permettant de boucler sur la liste des objets, de la présenter et d'afficher le détail des objets. Vous pouvez utiliser ces modèles "génériques" dans toute l'application si nécessaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X