我現在在轉換所有我的Django的基於函數的-意見中的基於類的視圖的過程...在基於類的視圖中,Django FBV的「render_to_response」等效嗎?
所以這是我原來的代碼:
views.py
def search(request):
if 'q' in request.GET:
q = request.GET['q']
if q:
result = Post.objects.filter(title__icontains=q)
variables = RequestContext(request, {
'result': result
})
return render_to_response('search.html', variables)
我只是想這個切換到CBV只是爲了練習CBV的目的...
這是我到目前爲止有:
views.py
class PostSearch(TemplateView):
template_name = 'search.html'
def get(self, request, *args, **kwargs):
q = self.request.GET.get('q')
if q:
data = {
'result': Post.objects.filter(title__icontains=q)
}
return self.render_to_response(data)
我認爲這會工作得很好,因爲它是一個非常簡單的代碼。不過,我得到這個錯誤:
ValueError: The view app_blog.views.PostSearch didn't return an HttpResponse object.
所以我想「選擇render_to_response」工作在CBV完全不同......
什麼是我原來的代碼轉換爲CBV的正確方法?
感謝:(((
我想'render_to_response'貶值和舊格式使用'render'代替 – suhailvs