Найти - Пользователи
Полная версия: Использование переменных из settings.py в шаблнах
Начало » Django » Использование переменных из settings.py в шаблнах
1
mc
Есть базовый шаблон base.html, в котором используется переменная {{ STATIC_URL }}, значение которой задано в settings.py.
Но при выводе шаблона значения STATIC_URL не подставляется.

views.py
def list(request):
posts = Project.objects.all()
t = loader.get_template("projects/list.html")

c = Context({'posts':posts, 'title':u'Проекты'})
return HttpResponse(t.render(c))
list.html
{% extends "base.html" %}

{% block content %}
<img src='/media/{{p.img}}'/>{{ MEDIA_URL }}{{p.img}}
{% endblock %}
Подскажите, плз, в чем причина.
pill
Попробуте так:
def list(request):
posts = Project.objects.all()
return render(request, 'projects/list.html', {'posts':posts, 'title':u'Проекты'})
Плюс проверьте чтобы django.core.context_processors.static был в TEMPLATE_CONTEXT_PROCESSORS в settings.py

Если нужно обязательно с голыми темплейтами:
...o_O... Где это код делся?...
шорткаты - https://docs.djangoproject.com/en/dev/topics/http/shortcuts/

PS: У вас в темплейте MEDIA_URL вместо STATIC_URL
Если все верно и вам нужно отдавать файлы загруженные пользователями.
То это отдельная тема:
https://docs.djangoproject.com/en/dev/howto/static-files/#staticfiles-other-directories
mc
спасибо огромное. получилось.

только не совсем ясно зачем нужны render_to_response() или
    t = loader.get_template("projects/list.html")    
c = Context({'posts':posts, 'title':u'Проекты'})
return HttpResponse(t.render(c))
если они request не подставляют. Для голых темплейтов? А зачем такие нужны? =)
pill
Ну, request не всегда нужно в темплейт передавать.
render_to_response, может request передавать:
render_to_response('template', context_dict, context_instance=RequestContext(request))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB