0

我有一个 Django 应用程序,它必须将 HTML 文件提供给普通浏览器,这些浏览器理解 HTML,并将 XML 文件提供给其他客户端。在我的views.py 中,我试图区分传入的HTTP 请求所具有的不同HTTP_ACCEPT 标记。这似乎已经奏效,因为正常的 HTML 文件已按预期提供。

只有当我尝试提供 XML 文件时,我才会收到一条错误消息:

/appstore/ 处的 ValueError 视图 appstore.views.index 未返回 HttpResponse 对象。

这是我的意见.py

from appstore.models import App
from django.shortcuts import render_to_response, get_object_or_404
from django.http import HttpResponse
from django.core import serializers

def index(request):
  if (request.META['HTTP_ACCEPT'].find('text/html') != -1):
    latest_app_list = App.objects.all().order_by('name')[:5]
    return render_to_response('appstore/index.html', {'latest_app_list': latest_app_list})
  else:
      def xml_view(func):
        def wrapper(*args, **kwargs):
          result = func(*args, **kwargs)
          return HttpResponse(serializers.serialize("xml", result),
            mimetype="text/xml")
        return wrapper
      @xml_view
      def index(request):
        return App.objects.all()
      @xml_view
      def get(request, id):
        return get_object_or_404(App, pk=app_id)

我希望你们中的某个人可以帮助我。提前致谢。

4

0 回答 0