【发布时间】:2016-11-20 16:34:42
【问题描述】:
嗨,我是 python django 的新手。
这是我的 django views.py 代码
def post_list(request):
request.session['lat'] = request.POST['user_lat']
request.session['lon'] = request.POST['user_lon']
userpoint = GEOSGeometry('POINT('lat' 'lon')', srid=4326)
list_total = list_1
i=1
while i:
list_i = Post.objects.filter(point_distance__lte = userpoint, D(km=i)
list_total = 'list_total' + ',' + 'list_i')
result_list = list(chain(list_total))
if len(result_list) >= 50 :
break
template = loader.get_template('blog/index.html')
context = {
'post_list': post_list,
}
return HttpResponse(template.render(context, request))
首先,我想让列表使用 request.session[]=request.POST[] 来制作坐标,这个坐标将在我的点域上使用'model.py'是否可能?还是有什么问题?
其次,在终端(ubuntu16.04)中,我使用了 python3 manage.py makemigrations 命令,它给了我如下消息, 从这样的代码,
request.session['lat'] = request.POST['user_lat']
request.session['lon'] = request.POST['user_lon']
userpoint = GEOSGeometry('POINT('lat' 'lon')', srid=4326)
发生了这样的错误->
userpoint = GEOSGeometry('POINT('lat' 'lon')', srid=4326)
^
SyntaxError: invalid syntax
从这样的代码,
list_i = Post.objects.filter(point_distance__lte = userpoint, D(km='i'))
^
语法错误:位置参数跟随关键字参数
发生了这个语法错误。
最后,从这段代码中,
while i:
list_i = Post.objects.filter(point_distance__lte = userpoint, D(km=i))
list_total = 'list_total' + ',' + 'list_i')
result_list = list(chain(list_total))
if len(result_list) >= 50 :
break
-> 发生了这个 SyntaxError。
list_total = list_total + ',' + 'list_i'
^
SyntaxError: 无效语法
我该如何解决这个问题?
while i:
list_i = Post.objects.filter(point_distance__lte = userpoint, D(km=i))
list_total = 'list_total' + ',' + 'list_i')
result_list = list(chain(list_total))
if len(result_list) >= 50 :
break
ps。我想使用 list(chain()) 函数制作自己的 result_list,但我想知道它是否有效。
itertools - python 文档:https://docs.python.org/3.3/library/itertools.html 我是根据 GEOdjango 代码: https://docs.djangoproject.com/en/dev/ref/contrib/gis/db-api/#distance-lookups
我正在使用 python3(可能是 3.5),django 1.9
感谢您阅读我的问题。
【问题讨论】: