Django: автоматически импортировать MEDIA_URL в контексте - PullRequest
2 голосов
/ 21 мая 2010

как выставлено здесь , можно установить MEDIA_URL в settings.py (например, я указываю на Amazon S3) и обслуживать файлы в представлении через {{ MEDIA_URL }}. Поскольку MEDIA_URL не находится автоматически в контексте, необходимо вручную добавить его в контекст, например, работает следующее:

#views.py

from django.shortcuts import render_to_response
from django.template import RequestContext

def test(request):
    return render_to_response('test.html', {}, context_instance=RequestContext(request))

Это означает, что в каждом файле view.py мне нужно добавить from django.template import RequestContext, а в каждом ответе я должен явно указать context_instance=RequestContext(request).

Есть ли способ автоматически (СУХОЙ) добавить MEDIA_URL в контекст по умолчанию? Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 21 мая 2010

Для этого использования есть общее представление:

direct_to_template(request, template, extra_context=None, mimetype=None, **kwargs)

Это плохо документировано (по моему мнению: оно не говорит о том, что оно использует RequestContext), поэтому я советую вам проверить реализацию:

http://code.djangoproject.com/browser/django/trunk/django/views/generic/simple.py

Я думаю, это то, что вы ищете ...

0 голосов
/ 11 августа 2010

Добавьте "django.core.context_processors.media" к вашему TEMPLATE_CONTEXT_PROCESSORS в файле настроек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...