[英]How can i solve this errors in python django?
嗨我非常新手在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))
首先,我希望make list使用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'))
^
SyntaxError:位置参数跟随关键字参数
这个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
- >这个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 doc: https ://docs.python.org/3.3/library/itertools.html我是根据GEOdjango代码: https ://docs.djangoproject.com/en/dev/ref/contrib/gis/db -API /#距离的查找
我使用python3(可能是3.5),django 1.9
感谢您阅读我的问题。
您无法使用错误形成的字符串实例化GEOSGeometry对象。 采用
userpoint = GEOSGeometry('POINT('+ latvariable +''+ lonvariable +')',srid = 4326)
你已经错过了收银台:
list_i = Post.objects.filter(point_distance__lte = userpoint, D(km=i)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.