Sam*_*zzo 3 django variables settings templates
我有一个奇怪的问题.基本上,在我的settings.py文件中,我有4个变量
URL_MAIN = 'http://www.mysite'
URL_JOBS = 'http://jobs.mysite'
URL_CARS = 'http://cars.mysite'
URL_HOMES = 'http://homes.mysite'
Run Code Online (Sandbox Code Playgroud)
在我的views.py我有通常的:
from settings import *
Run Code Online (Sandbox Code Playgroud)
我有6个视图调用它们,只是将它们返回到上下文中的模板:
class CarsHp(TemplateView):
...
class JobsHp(TemplateView):
...
class HomesHp(TemplateView):
...
class CarsList(TemplateView):
...
class JobsList(TemplateView):
...
class HomesList(TemplateView):
...
Run Code Online (Sandbox Code Playgroud)
这是在网址中调用的
CarsList.as_view()
...
Run Code Online (Sandbox Code Playgroud)
所有这些观点都有相同的说法:
context['URL_MAIN'] = URL_MAIN
...
Run Code Online (Sandbox Code Playgroud)
对于所有4个变量.
在模板中我正确地获取了所有4个,除了URL_MAIN,这6个视图中的2个"迷路".我正在使用经典的{{URL_MAIN}}访问它们,我一直在尝试所有内容,从移动到重命名,但仍然是URL_MAIN在从2提供后仍未显示(我得到空字符串,没有排序错误)这些观点.所有函数基本上共享相同的代码(查询和数据处理部分除外),这些设置的变量只是被分配和返回.不是任何检查或修改.我一直在尝试使用django的shell,我总能找回它们.
我们正在通过apache提供服务,并为robots.txt文件和静态文件提供一些代理传递配置.不严重".
我没有发布所有6个观看源代码只是因为它们很长并且相关部分都在上面描述.但我可以发布它们,如果你想,我只是不知道它是否真的有用,因为我已经三重检查所有来源冲突的名称或双重声明或不正确的使用.
提前感谢所有人,这真是令我惊叹不已
理想情况下,您应该使用模板上下文处理器.它将减少您的代码,让您可以准确地查看问题所在.
在项目中创建一个名为urls_context_processor.py(或类似文件)的文件,并将变量放在那里:
def common_urls(request):
return {
'URL_MAIN': "http://...",
'URL_JOBS': "http://...",
'URL_CARS': "http://...",
'URL_HOME': "http://...",
}
Run Code Online (Sandbox Code Playgroud)
并在您的settings.py
TEMPLATE_CONTEXT_PROCESSORS = = (
....
'my_project.urls_context_processor.common_urls',)
Run Code Online (Sandbox Code Playgroud)
现在,urls变量将在您的所有模板中自动提供,您无需在每个视图中对其进行硬编码.
| 归档时间: |
|
| 查看次数: |
174 次 |
| 最近记录: |