2009-10-28 186 views
3

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

所以举个例子,我可以给它一个对象,它只是为我带来它。

或者如果我给它一个列表,它只会遍历这些对象,并将它们作为一个ul(或tr,或其他任何它认为必需的)来迭代。

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

回答

5

如果有它的django模型,你可以坚持到django.contrib.admindjango.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() 
+0

这正是我想要的。那会教会我过度复杂。谢谢! – 2009-10-28 19:12:49

1

我看不到你远离编写模板,特别是如果你会想要格式化它,甚至略微。

但是你可以重新使用基本模板,用于例如,创建一个通用object_list.html和object_detail.html

将基本包含的信息来遍历对象列表并将其显示,并显示对象详情。如果需要,您可以在整个应用程序中使用这些“通用”模板。