Python django-在基本项目中声明的变量未出现在应用程序中

Python django-在基本项目中声明的变量未出现在应用程序中,python,django,pinax,Python,Django,Pinax,我有一个名为STATIC_URL的变量,在我的基本项目的settings.py中声明: STATIC_URL = '/site_media/static/' 例如,在my site_base.html中使用了该选项,该选项链接到CSS文件,如下所示: <link rel="stylesheet" href="{{ STATIC_URL }}css/site_tabs.css" /> 我有一堆与扩展site_base.html的不同应用程序相关的模板,当我在浏览器中查看这些模板

我有一个名为STATIC_URL的变量,在我的基本项目的settings.py中声明:

STATIC_URL = '/site_media/static/'
例如,在my site_base.html中使用了该选项,该选项链接到CSS文件,如下所示:

<link rel="stylesheet" href="{{ STATIC_URL }}css/site_tabs.css" />

我有一堆与扩展site_base.html的不同应用程序相关的模板,当我在浏览器中查看这些模板时,CSS被正确链接为

<link rel="stylesheet" href="/site_media/static/css/site_tabs.css" />

(这些都是默认的pinax发行版。)我创建了一个名为“课程”的新应用程序,它位于..../apps/courses文件夹中。我有一个名为courseinstance.html的课程中一个页面的视图,该页面与其他页面一样扩展了site_base.html

但是,当这个在我的浏览器中渲染时,它显示为

<link rel="stylesheet" href="css/site_tabs.css" />

好像此应用程序的静态URL等于“”。我是否必须做出某种声明才能让我的应用程序采用与项目相同的变量值?我没有应用程序的settings.py文件。顺便说一句,该应用程序列在我的已安装应用程序列表中,而且服务良好,只是没有指向CSS文件的链接(因此页面看起来很有趣)


提前感谢您的帮助。

模板无法使用settings.py中的变量。模板可用的内容由呈现它的视图决定。呈现模板时,您将传入一个字典,该字典是模板的“上下文”。上下文是变量名称及其值的字典

要将设置中的值传递到模板上,通常必须执行以下操作:

from django.conf import settings
def my_view(request):
    # view logic
    context = {
            'STATIC_URL': settings.STATIC_URL,
            # other template variables here
    }
    # render the template and produce a response
您的静态URL设置似乎非常类似于


所有模板都可以通过一个。你可以做类似的事情。您可以查看django源代码中的内容以获得想法。

啊,谢谢。将context\u instance=RequestContext(request)添加到我的render\u to\u响应命令中,就达到了目的。添加下面的代码,因为它不能很好地作为注释呈现。右传递context\u instance=RequestContext(request)以呈现\u to\u响应可确保应用所有上下文处理器。
def courseinstance(request, courseinstance_id):
    p = get_object_or_404(CourseInstance, pk=courseinstance_id)
    return render_to_response('courses/courseinstance.html', {'courseinstance': p},
        context_instance=RequestContext(request)) #added this part to fix problem