【发布时间】:2017-06-03 17:52:52
【问题描述】:
我无法在我的坐标函数中访问变量 solo。 调试语句“solo used:”输出“none”。我需要做什么才能使其工作?感谢您的想法。
在views.py中
def go(request):
print "go executing"
lat = request.GET.get('latitude', None)
lng = request.GET.get('longitude', None)
if not lat or not lng:
print "ERROR: BAD URL PARAMETERS"
# call the dronekit module we wrote before
solo = drone.drone()
print "solo instantiated: ", solo
solo.takeoff()
solo.flyTo(lat,lng, 60)
resp = "Arrived and landed. <br> <a href=/rtl>Return Home</a>"
request.session['solo'] = "hello"
return HttpResponse(resp)
def coordinates(request):
#print "Request: ", request
#if request.method == 'GET':
solo = request.session.get('solo')
print "solo used: ", solo
# print "made it to views.py, and lat: ", solo.getlat(), ". lng: ", solo.getlng()
#print "lat: ", lat, ". lng: ", lng
#lat1 = fly_drone.getlat()
#lat2 = fly_drone.getlng()
#print "lat1: ", lat1, ". lat2: ", lat2
return HttpResponse('check')
请注意,我是通过 ajax 从 map.js 调用坐标:
function refreshData()
{
x = 5;
setTimeout(refreshData, x*1000);
console.log("refreshing now");
$.ajax({
url: '/coordinates/',
type: 'get',
success: function(data){
//alert(data);
},
failure: function(data){
//alert('Got an error dude');
}
})
请注意,我确实在 settings.py 中启用了会话序列化程序:
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'
...
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'skyway_app'
]
【问题讨论】:
-
你的
MIDDLEWARE/MIDDLEWARE_CLASSES中有SessionMiddleware吗? -
嘿,拉兹,是的,我愿意..
标签: python ajax django session