设置cookie上的Django错误,test_cookie为false

时间:2012-05-10 12:31:37

标签: django firebug

问题解决了! 对不起,我没有提到我正在使用dotcloud。这是由于dotcloud的混蛋。 dotcloud上的项目需要postinstall来运行脚本,但是使用其内置git,它将忽略可执行位。所以我按照网址Warning: postinstall file exists, but it is not executable. Ignoring.。并再次上传我的项目中的总文件。问题解决了。我认为这是因为我没有创建会话数据库。 但还是有一个问题。默认会话不使用数据库作为后端对吗?即使它使用后端,我的项目的后端是MongoDB,它有一个懒惰的操作方法,我的意思是它将在使用时创建数据库。那么为什么没有syncdb,它可能会导致这个问题?

我正在使用response.set_cookie设置Cookie。但它无法在firefox firebug上显示。

我尝试了request.session.set_test_cookie(),但它显示我的浏览器不支持cookie。这不可能。我也试过Safari,也无法设置cookie。

这是怎么回事?我确信我的浏览器支持cookie,我可以通过firebug看到Cookie从其他网站发回。

代码如下:     如果request.method =='POST':         username = request.POST.get('username','')         password = request.POST.get('password','')

if username != '' and password != '':
    if len(username) > 20:
        returnmsg = 'USR LEN'

    else:
        password = md5(password).hexdigest()
        user_exist = User.objects(username=username)
        if not user_exist:  #if the list is empty
            returnmsg = 'LOG ERR'
        else:
            for user in User.objects(username=username):
                if user.password == password:
                    returnmsg = 'LOG OK'
                    #add session information
                    response = HttpResponse(returnmsg)

#Try 1

                response['Cookie-Set']='username='+username

#try 2

                response.set_cookie(key="username", value=username)

#try 3

                request.session['username'] = username

                    user.log.append(UserLog(time=datetime.now(), ip=request.META['REMOTE_ADDR'], login=True))
                    user.save()
                    return response
                else:
                    returnmsg = 'LOG ERR'
                    user.log.append(UserLog(time=datetime.now(), ip=request.META['REMOTE_ADDR'], login=False))
                    user.save()
else:
    returnmsg = 'USR EPT'

0 个答案:

没有答案