2014-01-16 5 views
2

장고 프로젝트에서 사용자 지정 응답 헤더를 설정해야합니다. 여기에 사용자 정의 헤더를 설정하는 방법이 있는지Django 사용자 지정 응답 헤더

d = { 
    'app_name': 'facts', 
    'model_name': 'Fact' 
} 

urlpatterns = patterns('', 
    (r'^$', 'facts.main', d), 
) 

이러한 접근 방식은 모델에서 데이터를 보여 주지만, I'am 확실하지 : 여기

는 사실/urls.py에서 코드?

또한 나는 다른 접근 방식을 시도 - 나는 다음과 같은 기능을 사실/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

당신은 귀하의 질문에 명확하지 않다 :

def get(self, request): response = HttpResponse() response["TestCustomHeader"] = "test" return response 

또는 함수보기 : 클래스 기반 뷰에서


설정 사용자 지정 제목은, 클래스 내부에 같은 함수를 정의 귀하의 응답과 관련하여 머리글 조작을 볼 수 없기 때문에 ... 장고는 문서의 머리글을 다루고 있습니다 : https://docs.djangoproject.com/en/1.6/ref/request-response/#django.http.HttpRequest. 메타 – petkostas

+0

두 번째 방법으로 맞춤 헤더 (TestCustomHeader)를 추가하고 방화 광에서 볼 수 있습니다. 그러나이 경우 모델은로드되지 않습니다. – Phantom

+0

왜 모델 데이터를보아야합니까? 당신은 실제로 어떤 모델 데이터도 가져 오지 않습니다 ... 더 많은 이해를 위해 장고 문서를 확인해야합니다 : https://docs.djangoproject.com/en/1.6/topics/http/views/ – petkostas

답변

2

views.mainurls.py을 입력하면 def main(){"model_name": "Fact"}을 처리합니다. 당신이 render_to_response에 "MODEL_NAME"를 통과하면

model = get_model(kwargs["model_name"]) 
return model.objects.all() 

DICT는 문맥과 템플릿에 전달됩니다 : 아마 같은 몇 가지 코드가있다. 템플릿 {{model_name}}에 포함 시키면 페이지가 Fact으로 렌더링됩니다. ,

def main(request): 
    response = HttpResponse() 
    reponse["TestCustomHeader"] = "test" 

    [ Some code to fetch model data ] 

    return response 
관련 문제