我需要在Django项目中设置自定义响应头。
以下是来自facts / urls.py的代码:
d = {
'app_name': 'facts',
'model_name': 'Fact'
}
urlpatterns = patterns('',
(r'^$', 'facts.main', d),
)
这种方法显示来自模型的数据,但我不确定是否有办法在这里设置自定义标题?
我还尝试了另一种方法 - 我用以下函数创建了fact / views.py:
def fact(request):
response = render_to_response('facts.html',
{'app_name': 'facts',
'model_name': 'Fact'},
context_instance=RequestContext(request))
response['TestCustomHeader'] = 'test'
return response
并更改了urls.py中的代码:
(r'^$', facts.views.fact),
此方法设置自定义标头但不显示模型中的数据。
任何帮助?
答案 0 :(得分:4)
当您将字典传递给views.main
中的urls.py
时,函数def main()
处理{"model_name": "Fact"}
。可能有一些代码如:
model = get_model(kwargs["model_name"])
return model.objects.all()
将“model_name”传递给render_to_response
时,dict将作为上下文传递给模板。如果您在模板{{model_name}}
中加入,则该页面应呈现Fact
。
在基于类的视图中设置自定义标题,在类中定义了一个函数,如:
def get(self, request):
response = HttpResponse()
response["TestCustomHeader"] = "test"
return response
或在功能视图中:
def main(request):
response = HttpResponse()
reponse["TestCustomHeader"] = "test"
[ Some code to fetch model data ]
return response