[英]Django sessions between views not working
I'm unable to access variable the variable solo in my coordinates function. 我无法在坐标函数中访问变量solo变量。 The debug statement "solo used:" outputs "none". 调试语句“ solo used:”输出“ none”。 What do I need to do to make this work? 我需要做些什么才能使这项工作? Thanks a mil for your thoughts. 感谢您的想法。
in views.py 在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')
Note that I'm calling coordinates from map.js via ajax: 请注意,我是通过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');
}
})
Note that I do have session serializer on in settings.py: 请注意,我在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'
]
When in doubt, read the docs : 如有疑问,请阅读文档 :
django.contrib.sessions.middleware.SessionMiddleware
is in your MIDDLEWARE
in your settings. 确保django.contrib.sessions.middleware.SessionMiddleware
在您的MIDDLEWARE
中的设置中。 django.contrib.sessions
is in INSTALLED_APPS
in settings and that migrations have run. 如果使用的是数据库支持的会话,则必须确保django.contrib.sessions
位于设置的INSTALLED_APPS
中,并且迁移已经运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.