【发布时间】:2012-10-18 20:09:34
【问题描述】:
我有一个中间件,可以为每个新用户自动创建一个用户帐户并重定向:
class LogNewUser(object):
def process_request(self, request):
user_id = request.session.get('uid', None)
if not user_id:
user = User.objects.create(username=generate_name())
request.session['uid'] = user.pk
return redirect(request.path)
else:
request.user = User.objects.get(pk=user_id)
当然,如果浏览器禁用了 cookie,这会创建一个无限重定向循环。
我想测试用户是否启用了 cookie,如果是,做我的事情,如果没有,创建一个特定的用户对象,该对象对于所有非 cookie 用户都是相同的。
我尝试了 request.session.set_test_cookie() 和 request.session.test_cookie_worked() 的不同组合,但找不到实现我想要的方法。
【问题讨论】:
-
检查cookie的问题是你可以设置一个cookie,但只能在下一个请求中检查...
-
我知道问题所在,我正在寻找解决方案。我昨天凌晨 4 点发现的!
-
很好,请告诉我们:)
-
我现在就写下来^^
-
你也在找那个@Jingo 吗?
标签: django cookies middleware