视图companies.views.view没有返回HttpResponse对象

时间:2014-03-07 19:20:52

标签: django httpresponse

我还在学习,其他问题都没有回答我的问题,为什么我必须要有HTTP响应?

def view(request):
        namesTickers = Company.objects.all().values('name', 'ticker')
        names, tickers = [], []
        for nameTicker in namesTickers:
                names.append(nameTicker['name']) 
                tickers.append(nameTicker['ticker']) 
        nameTickerDict = dict(zip(names, tickers))
        print nameTickerDict

        if 'ticker' in request.POST and request.POST['ticker']:
                q = request.POST['ticker']

                context = {}
                context['companies'] = json.dumps(nameTickerDict)
                context['companyInfo'] = Company.objects.filter(ticker__icontains=q)
                context['financial'] = Financials.objects.filter(ticker__icontains=q).order_by('-year')

                return render( request, "companies/view.html",[context])

1 个答案:

答案 0 :(得分:1)

因为HTTP是请求/响应机制。您收到了请求,您必须回复它。但是,它不一定是成功的响应。如果您在没有ticker的情况下无法做出有意义的回复,则可能会返回错误页面。或者,如果您有一个用户输入自动收报机并将其提交给view的表单,那么您可能希望将用户返回到相同的表单,但会显示错误消息。如果是这样的话,Django的forms framework会帮助你。