Заголовки пользовательских ответов Django
Мне нужно установить заголовки пользовательских ответов в проекте Django.
Вот код из fact /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),
Этот подход устанавливает пользовательские заголовки, но не показывает данные из модели.
Любая помощь?
1 ответ
Когда вы передаете диктат views.main
в urls.py
, функция def main()
имеет дело с {"model_name": "Fact"}
, Вероятно, есть такой код:
model = get_model(kwargs["model_name"])
return model.objects.all()
Когда вы передаете "имя_модели" 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