Django表示无法在DigitalOcean Server

时间:2017-05-20 20:36:31

标签: python django forms deployment digital-ocean

您好我最近一直在尝试在DigitalOcean Ubuntu 16.4服务器上部署Django Web应用程序,最终能够使用uWSGI,nginx加载视图,并加密以获得安全连接。我唯一的问题是:有一些视图依赖于提交django表单来根据与用户的距离检索对象(视图中的GeoDjango查询)。有问题的表格如下:

<form method= 'get' action="/foo/">{% csrf_token %}
        <input  id='latload'  type= 'number' step='any' value='0' name='latitude' style="display:none">
        <input  id='lonload'  type= 'number' step='any' value='0' name='longitude' style="display:none">




    <p id= 'walltext' >Here you can listen to the sounds in your area. To use your current location, click 
    </p>


    <input class="btn btn-success" type='submit' id='submit' value='here' style="color:#1d3b77; font-size: 25px; width: 100%;" disabled />
</form>

它从前一个Javascript getLocation()函数中检索lat和long,然后通过表单传递给/ foo / view,该表单按距离(GeoDjango)查询对象,如下所示:

def fetch_places_loc(request):
    lat= request.GET['latitude']
    lon= request.GET['longitude']
    finder_location = Point(float(lon),float(lat))

    nearby= Places.objects.filter(
        location__distance_lte=(
            finder_location,
            D(km=40))).distance(finder_location).order_by('distance').order_by('-rating__average')[:10]
    context= {
        'object_listboy': nearby,
        'title': 'wall',

    }
    return render(request, 'location/wall.html', context)

现在,在开发服务器上,它们一起工作并返回最近的10个对象。在Git将项目克隆到DigitalOcean服务器并配置uWSGI,NGINX并通过加密来保护连接后,该视图不会返回任何结果。它重定向到&#34;墙&#34;页面,列表中没有对象。我没有在浏览器控制台中收到任何错误,并且所有的javascript都正常工作(使用console.log()返回lat和long,并将其放入Django表单中)。任何对任何事情都有所了解的人?我已经在网站上工作了一段时间,并且很难接近完成。我的直觉指向可能是不正确的nginx服务器配置或其他东西。如果您想看到任何配置,请告诉我。

2 个答案:

答案 0 :(得分:1)

如果您未在请求中获得longituderequest.GET['latitude'],则代码会在您编写时抛出错误 - import librosa.display

所以,我猜这个查询没有返回任何结果。您可以使用服务器上的django shell调试它,然后使用某些值运行数据库查询。

答案 1 :(得分:0)

取消显示:无,并检查表单中是否有填充了javascript的数据,我非常确定您必须允许网站对您进行地理位置