注意,我的代码没有列出,都是库。
Traceback (most recent call last):
File "/root/env/lib/python3.9/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
File "/root/env/lib/python3.9/site-packages/django/utils/deprecation.py", line 138, in __call__
response = self.process_response(request, response)
File "/root/env/lib/python3.9/site-packages/django/contrib/sessions/middleware.py", line 59, in process_response
request.session.save()
File "/root/env/lib/python3.9/site-packages/django/contrib/sessions/backends/db.py", line 82, in save
obj = self.create_model_instance(data)
File "/root/env/lib/python3.9/site-packages/django/contrib/sessions/backends/db.py", line 69, in create_model_instance
session_data=self.encode(data),
File "/root/env/lib/python3.9/site-packages/django/contrib/sessions/backends/base.py", line 94, in encode
return signing.dumps(
File "/root/env/lib/python3.9/site-packages/django/core/signing.py", line 150, in dumps
return TimestampSigner(key, salt=salt).sign_object(
File "/root/env/lib/python3.9/site-packages/django/core/signing.py", line 228, in sign_object
data = serializer().dumps(obj)
File "/root/env/lib/python3.9/site-packages/django/core/signing.py", line 125, in dumps
return json.dumps(obj, separators=(",", ":")).encode("latin-1")
File "/usr/lib/python3.9/json/__init__.py", line 234, in dumps
return cls(
File "/usr/lib/python3.9/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python3.9/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
File "/usr/lib/python3.9/json/encoder.py", line 179, in default
raise TypeError(f'Object of type {o.__class__.__name__} '
Exception Type: TypeError at /financialreconciliation/
Exception Value: Object of type AllCompany is not JSON serializable
我通过URL知道了这个错误的视图。我在视图中做了一个二进制搜索,试图用print语句找到它出现的那一行,但是我没有找到它。我一直用print语句返回,它们都显示了。
然后我使用return HttpResponse()进行了搜索,最后发现问题是::
request.session['variance_dict'] = variance_dict
事实上,字典里有AllCompany对象。
我还在学习模型-视图-控制器的控制部分,所以我没有意识到字典的更新直到返回时才会发生。这也可能是python的问题。我不确定是什么原因导致的。但是,我认为其他人可能在我的位置上,这可能会帮助他们。
1条答案
按热度按时间d7v8vwbk1#
目前,我的解决方案是不把模型对象放在会话中,但是,可能有一种方法可以做到这一点,或者有一种更好的解决方案,所以我希望其他人能给予更全面的答案/解释。