3

ジェネリック ビューはかなりクールですが、私が興味を持っているのはジェネリック テンプレートです。

たとえば、オブジェクトを渡すと、それを文字列に並べるだけです。

または、リストを指定すると、オブジェクトを反復処理して、それらを ul (または tr、または必要と思われるもの) として文字列化します。

ほとんどの用途では、これは必要ありません。友人のために何かをすばやくまとめたところです (知っておく必要がある場合は、バー ストック アプリ)。テンプレートを書く気がしません。

4

2 に答える 2

5

django.contrib.adminそのためのdjangoモデルがある場合は、またはに固執することができますdjango.contrib.databrowse。そうでない場合は、django テンプレートを完全にスキップして管理できます。例:

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)

しかしもちろん、それほど多くのことを書くことさえ避けたかったので、html を行う代わりに、プレーン テキストとpprintモジュールを使用できます。

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")

編集:うーん...これは、ビューデコレータが処理する必要があるもののようです:

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()
于 2009-10-28T18:50:20.797 に答える
1

テンプレートを書くことから逃れることはできません。特に、少しでもフォーマットしたい場合はそうです。

ただし、基本的なテンプレートを再利用できます。たとえば、汎用のobject_list.htmlやobject_detail.htmlを作成できます。

これには基本的に、オブジェクトリストをループして表示し、オブジェクトの詳細を表示するための情報が含まれます。必要に応じて、アプリ全体でこれらの「汎用」テンプレートを使用できます。

于 2009-10-28T18:53:57.310 に答える