5 回答
TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊
我不確定這是否適用于您的情況,具體取決于您存儲(chǔ)編碼數(shù)據(jù)的位置。
我有同樣的錯(cuò)誤,但它與一些編碼的會(huì)話數(shù)據(jù)有關(guān)。我清除了瀏覽器 Devtools 中的會(huì)話數(shù)據(jù)(cookie、緩存等),它解決了我的問(wèn)題。
只是張貼它以防它適用或幫助其他出于同樣原因而來(lái)的人。
TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊
在 shell 中運(yùn)行以下命令
from?django.contrib.sessions.models?import?Session Session.objects.all().delete()
TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
我有同樣的錯(cuò)誤。我做了所有清除緩存的事情,但它不起作用?,F(xiàn)在將瀏覽器更改為 Mozilla?,F(xiàn)在它正在工作。
TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
我遇到過(guò)同樣的問(wèn)題。我猜這是因?yàn)槲乙婚_(kāi)始使用的是 django 4.0.1,后來(lái)切換回 django 2.2...(也許你的問(wèn)題不是由此引起的,但我只是想提供一些關(guān)于問(wèn)題可能出在哪里的想法遇到此問(wèn)題的讀者請(qǐng)?jiān)L問(wèn)此頁(yè)面。)
session_dataDjango 4.0.1 應(yīng)該直接將字符串中的會(huì)話數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,但是 Django 2.2 將 base64 編碼的數(shù)據(jù)保存到數(shù)據(jù)庫(kù)表的同一列中/從中讀取django_session。
在我的例子中,base64.b64decode() 中失敗的字符串是.eJxVjEEOwiAQRe_C2pABCgWX7j0DmRlAqoYmpV0Z765NutDtf-_9l4i4rTVuPS9xSuIslDj9boT8yG0H6Y7tNkue27pMJHdFHrTL65zy83K4fwcVe_3WGtkEHfLg2IMroL1VZA0BFGMJPJhRkdEucypY2CfA7C2HgRHGor14fwDNWjfC:1nERxl:5jJRHXpQH7aZrf2-C99MnTIWARd_cUag76Xa2YjW1yw,這顯然不是有效的 base64 字符串,因?yàn)?code>: - . .base64 字符列表中根本不存在符號(hào)。

我的完整回溯信息是:
Internal Server Error: /admin
Traceback (most recent call last):
File "C:\Users\Public\django2.2\lib\site-packages\django\contrib\sessions\backends\base.py", line 189, in _get_session
return self._session_cache
AttributeError: 'SessionStore' object has no attribute '_session_cache'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Public\django2.2\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
response = get_response(request)
File "C:\Users\Public\django2.2\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Users\Public\django2.2\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Public\django2.2\lib\site-packages\django\contrib\admin\sites.py", line 241, in wrapper
return self.admin_view(view, cacheable)(*args, **kwargs)
File "C:\Users\Public\django2.2\lib\site-packages\django\utils\decorators.py", line 142, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "C:\Users\Public\django2.2\lib\site-packages\django\views\decorators\cache.py", line 44, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "C:\Users\Public\django2.2\lib\site-packages\django\contrib\admin\sites.py", line 212, in inner
if not self.has_permission(request):
File "C:\Users\Public\django2.2\lib\site-packages\django\contrib\admin\sites.py", line 186, in has_permission
return request.user.is_active and request.user.is_staff
File "C:\Users\Public\django2.2\lib\site-packages\django\utils\functional.py", line 256, in inner
self._setup()
File "C:\Users\Public\django2.2\lib\site-packages\django\utils\functional.py", line 392, in _setup
self._wrapped = self._setupfunc()
File "C:\Users\Public\django2.2\lib\site-packages\django\contrib\auth\middleware.py", line 24, in <lambda>
request.user = SimpleLazyObject(lambda: get_user(request))
File "C:\Users\Public\django2.2\lib\site-packages\django\contrib\auth\middleware.py", line 12, in get_user
request._cached_user = auth.get_user(request)
File "C:\Users\Public\django2.2\lib\site-packages\django\contrib\auth\__init__.py", line 182, in get_user
user_id = _get_user_session_key(request)
File "C:\Users\Public\django2.2\lib\site-packages\django\contrib\auth\__init__.py", line 59, in _get_user_session_key
return get_user_model()._meta.pk.to_python(request.session[SESSION_KEY])
File "C:\Users\Public\django2.2\lib\site-packages\django\contrib\sessions\backends\base.py", line 54, in __getitem__
return self._session[key]
File "C:\Users\Public\django2.2\lib\site-packages\django\contrib\sessions\backends\base.py", line 194, in _get_session
self._session_cache = self.load()
File "C:\Users\Public\django2.2\lib\site-packages\django\contrib\sessions\backends\db.py", line 44, in load
return self.decode(s.session_data) if s else {}
File "C:\Users\Public\django2.2\lib\site-packages\django\contrib\sessions\backends\base.py", line 100, in decode
encoded_data = base64.b64decode(session_data.encode('ascii'))
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊
您可能在不同的環(huán)境中運(yùn)行服務(wù)器,激活該環(huán)境并嘗試再次運(yùn)行服務(wù)器。
如果 env 文件夾在您當(dāng)前的路徑中,請(qǐng)執(zhí)行以下操作
殺死服務(wù)器然后運(yùn)行
source env/bin/activate python manage.py runserver
添加回答
舉報(bào)
