0

のMIMEタイプでフラットページを提供する方法はありますtext/xmlか? テンプレートを別のファイル拡張子のテンプレートに変更しても機能せず、これが可能であるというドキュメントの情報が見つかりません。

4

1 に答える 1

1

FlatpageFallbackMiddleware を上書きすることをお勧めします。次のように応答ヘッダーを設定できます。

#myproject/middleware.py
from django.contrib.flatpages.middleware import FlatpageFallbackMiddleware

class XmlFlatpageFallbackMiddleware(FlatpageFallbackMiddleware):
    def process_response(self, request, response):
        if response.status_code != 404:
            return response # No need to check for a flatpage for non-404 responses.


        response = super(XmlFlatpageFallbackMiddleware, self).process_response(request, response)
        # this depends on your settings.APPEND_SLASH
        # see django.contrib.flatpages.views.flatpage for details
        if request.path_info.endswith('.xml') or request.path_info.endswith('.xml/'): 
            response['Content-Type'] = 'text/xml; charset=utf-8'
        return response

新しいミドルウェアをsettings.MIDDLEWARE_CLASSESに配置すると、xml ファイルが消えます。

カスタムミドルウェアの作成方法に関する追加情報は、ここにあります

ここでは、django での応答ヘッダーの設定に関する情報を示します

于 2013-01-10T10:40:04.590 に答える