2009-10-28 105 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

將基本包含的信息來遍歷對象列表並將其顯示,並顯示對象詳情。如果需要,您可以在整個應用程序中使用這些「通用」模板。