首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >python : ValueError:视图没有返回HttpResponse对象。它没有返回任何东西

python : ValueError:视图没有返回HttpResponse对象。它没有返回任何东西
EN

Stack Overflow用户
提问于 2018-06-03 13:18:05
回答 1查看 1K关注 0票数 0

我知道这样的问题确实存在。但没人能解决我的问题。然而,我的代码在我的PC中的本地主机上工作,而在在线服务器中不工作。这个网站是这里。您可以转到English选项卡并单击一个新闻标题来查看ajax请求。它是一个简单的ajax请求,通过在view.py文件中定义的URL从模板到urls.py文件。url (即show_recommendation)的定义方式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from django.contrib import admin
#from django.urls import path
from django.conf.urls import url
from khobor import views

urlpatterns = [
    url(r'^$', views.home, name='home'),
    url(r'^admin/', admin.site.urls),
    url(r'^find_feed/', views.find_feed, name="find_feed"),
    url(r'^show_articles/', views.show_articles, name="show_articles"),
    url(r'^clear_cookie/', views.clear_cookie, name="clear_cookie"),
    url(r'^show_recommendation', views.show_recommendation, name="show_recommendation"),
    ]

模板中的JavaScript代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
       $.ajax({

                    url:"/show_recommendation/",
                    method:"POST",
                    dataType: 'JSON',
                   data:{
                      id_found:id_found,
                      csrfmiddlewaretoken: '{{ csrf_token }}'

                    },
                    success:function (data) {

                        //data=$.parseJSON(data);

                        alert(data);
                        if(window.console){

                            console.log(" response data =  ");
                            console.log(data);
                        }



                         if($.isArray(data)){


                        for(i=0; i<data.length; i++){

                            var id_found=data[i][0];

                            if(window.console){

                                console.log(" id found = "+id_found+" id found result = "+jQuery.inArray(id_found, ids_all));

                            }
                            if(jQuery.inArray(id_found, ids_all) ==-1){





                                ids_all.push(id_found);
                                new_ids.push(id_found);

                            if(window.console){

                                console.log(" id pushed = "+id_found);

                            }



                            //$("#recommendations").append('<li>'+data[i][0]+' ... '+data[i][1]+'</li>');
                            $("#recommendations").append('<li class="article_indiv  inline_block">' +
                                '<span class="top_image inline_block"  data-id="'+data[i][0]+'" ><img src="'+data[i][4]+'" alt="image"/>'+
                                '</span>' +
                                '<a class="link" data-id="'+data[i][0]+'" target="_blank"  href="'+data[i][2]+'" >'+data[i][3]+'</a>' +
                                 '</li>');

                             $(".top_image").imagefill();

                           /* $(".top_image").each(function(){

                                $elem = $(this);
                                var data_id =$elem.attr('data-id');
                                if(jQuery.inArray(data_id, new_ids) !=-1){

                                    $elem.imagefill();

                                }

                            });*/

                            }
                         } // end of for loop

                        Cookies.set('ids_all', ids_all);
                         }


                }


            });

view.py中,我有:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def show_recommendation(request):

    # recommendations=['item1','item2']
    # json_list=json.dumps(recommendations)

    if request.method=="POST" and request.is_ajax():
        #print("u see this response ? ");
        #return HttpResponse("this is the response ")
        id_found = request.POST['id_found'];
        news_found=news.objects.get(id=id_found)
        content_found=news_found.content


        all_news = news.objects.exclude(id=id_found).order_by('-id').all()
        myList=[]


        for news_indiv in all_news:
            content=news_indiv.content
            id=news_indiv.id
            headline=news_indiv.headline
            url=news_indiv.url
            image=news_indiv.image
            result_similarity=cosine_sim(content,content_found)
            myList.append([id, result_similarity,url,headline,image])


        # myList = [3, 2, 5, 6, 1, 0, -5, 6, -7]
        # myList = [[12, .45633], [13, .245633], [14, .3323], [15, .8756]]

        result = quickSort(myList)
        total_rows = len(result)
        resultList=[]
        resultList.append(result[total_rows-1])
        resultList.append(result[total_rows-2])
        resultList.append(result[total_rows-3])
        #print("resultList === ")
        #print(resultList)

        json_list = json.dumps(resultList)

        #if(json_list is None):
        #   json_list="0";


        print ("before HttpResponse ")
        return HttpResponse(json_list)
        #return HttpResponse("dfdfdfdf")
        #return json_list

在我的在线服务器中,我得到了以下错误,尽管它在我的PC上的本地主机上运行得很好:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Internal Server Error: /show_recommendation/

Traceback (most recent call last):

  File "/usr/lib64/python3.6/site-packages/django/core/handlers
/exception.py", line 35, in inner

    response = get_response(request)

  File "/usr/lib64/python3.6/site-packages/django/core/handlers/base.py", 

line 139, in _get_response

    "returned None instead." % (callback.__module__, view_name)

ValueError: The view khobor.views.show_recommendation didn't return an 

HttpResponse object. It returned None instead.

[03/Jun/2018 21:00:44] "POST /show_recommendation/ HTTP/1.1" 500 54424

现在如何删除错误?

EN

回答 1

Stack Overflow用户

发布于 2018-06-05 06:55:29

问题是,正如注释中所指出的,服务器正在使用.pyc文件。

根据托管站点的方式,您需要重新启动Django服务器进程,以触发.pyc文件的更新和重新编译。

对于Gunicorn来说,这篇文章讨论了如何自动修改。在源变化的情况下自动加载

如果您不使用Gunicorn并发布关于您的服务器设置的更多信息,我将编辑它以匹配您的用例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50671066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文