8

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),

このアプローチはカスタム ヘッダーを設定しますが、モデルからのデータは表示しません。

何か助けはありますか?

4

1 に答える 1

7

dict をviews.maininに渡す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()
    response["TestCustomHeader"] = "test"

    [ Some code to fetch model data ]

    return response
于 2014-01-16T15:33:51.017 に答える