3

所以,通用视图非常酷,但我感兴趣的是通用模板。

例如,我可以给它一个对象,它会为我串起来。

或者,如果我给它一个列表,它只会遍历对象并将它们作为 ul(或 tr,或它认为必要的其他任何东西)串起来。

对于大多数用途,您不需要这个。我只是为一个朋友快速拼凑了一些东西(一个酒吧股票应用程序,如果你必须知道的话),我不想写模板。

4

2 回答 2

5

如果有 django 模型,你可以坚持使用django.contrib.adminor 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)

但是当然你想避免写那么多,所以我们可以使用纯文本和pprint模块来代替 html:

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 回答