6.5和Django 2.1.a1。我在以为可能是简单的cookie构建方面遇到了麻烦。我为cookie有效负载创建了dict
。我最后得到两个字符串键,每个键都有一个字符串值。
一个例子是:
>>> cookie_payload = dict()
>>> cookie_payload["whereAmI"] = "index"
>>> cookie_payload["account_number"] = "123456789"
>>> json.dumps(cookie_payload, ensure_ascii=True)
'{"whereAmI": "index", "account_number": "123456789"}'
下面的set_cookie
的结果是:
'{"whereAmI": "index"\054 "account_number": "123456789"}'
到达我的JavaScript时。 JSON.parse()
放在“ 054”上。逗号显然已被转义,但未进行url编码。如何强制逗号保持“,”或在JavaScript中对字符串进行不同的解码?
@verified_email_required
def index(request):
cookie_payload = dict()
try:
cookie_payload["whereAmI"] = "index"
my_profile = Profile.objects.get(user=request.user)
profile_in_groups = Group.objects.all().filter(
grouplist__profile__account_number=my_profile.account_number) \
.order_by('name')
cookie_payload["account_number"] = my_profile.account_number.__str__()
my_render = render(request, 'App/index.html', {
'profile': my_profile
})
my_render.set_cookie("Session",
value=json.dumps(cookie_payload,
ensure_ascii=True))
except ObjectDoesNotExist:
my_render = redirect('profile-create')
my_render.set_cookie("Session",
value=json.dumps(cookie_payload,
ensure_ascii=True))
return my_render