Заголовки пользовательских ответов 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
Другие вопросы по тегам