Джанго универсальные шаблоны - PullRequest
3 голосов
/ 28 октября 2009

Итак, общие представления довольно крутые, но меня интересует нечто общее.

так, например, я могу дать ему объект, и он просто заменит его для меня.

или, если я дам ему список, он будет просто перебирать объекты и помещать их в строку в виде ul (или tr, или того, что он сочтет необходимым).

для большинства случаев вам это не понадобится. Я просто быстро что-то скомбинировал для друга (приложение для бара, если вы должны знать), и мне не хочется писать шаблоны.

Ответы [ 2 ]

5 голосов
/ 28 октября 2009

Если для этого есть модель django, вы можете просто придерживаться django.contrib.admin или 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")

edit: Хмм ... это похоже на то, что должен обрабатывать декоратор вида:

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()
1 голос
/ 28 октября 2009

Я не вижу, чтобы вы уходили от написания шаблонов, особенно если вы хотите отформатировать его, даже немного.

Однако вы можете повторно использовать базовые шаблоны, например, создать общий object_list.html и object_detail.html

, который в основном будет содержать информацию для циклического перемещения по списку объектов, представления его и отображения деталей объекта. При необходимости вы можете использовать эти «универсальные» шаблоны во всем приложении.

...