我有一个 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)
我希望你们中的某个人可以帮助我。提前致谢。