django - Django 2.2 打破了以前工作的视图/网址
问题描述
决定试用 Django 2.2(项目目前正在运行 2.1.8),现在我什至无法启动服务器。我已经维护这个项目近两年了,这应该是一个小更新。
该错误似乎与我的观点有关,但我在发行说明中找不到任何在2.1.8 和 2.2 之间发生有意义变化的内容。我怀疑这可能是由于我的view
系统相当不标准。views.py
我使用一个view
由__init__.py
. 但同样,这只是一个猜测。
Watching for file changes with StatReloader
Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\Python37\lib\threading.py", line 917, in _bootstrap_inner
self.run()
File "C:\Python37\lib\threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "C:\Python37\lib\site-packages\django\utils\autoreload.py", line 54, in wrapper
fn(*args, **kwargs)
File "C:\Python37\lib\site-packages\django\core\management\commands\runserver.py", line 117, in inner_run
self.check(display_num_errors=True)
File "C:\Python37\lib\site-packages\django\core\management\base.py", line 390, in check
include_deployment_checks=include_deployment_checks,
File "C:\Python37\lib\site-packages\django\core\management\base.py", line 377, in _run_checks
return checks.run_checks(**kwargs)
File "C:\Python37\lib\site-packages\django\core\checks\registry.py", line 72, in run_checks
new_errors = check(app_configs=app_configs)
File "C:\Python37\lib\site-packages\django\core\checks\urls.py", line 13, in check_url_config
return check_resolver(resolver)
File "C:\Python37\lib\site-packages\django\core\checks\urls.py", line 23, in check_resolver
return check_method()
File "C:\Python37\lib\site-packages\django\urls\resolvers.py", line 399, in check
messages.extend(check_resolver(pattern))
File "C:\Python37\lib\site-packages\django\core\checks\urls.py", line 23, in check_resolver
return check_method()
File "C:\Python37\lib\site-packages\django\urls\resolvers.py", line 400, in check
messages.extend(self._check_custom_error_handlers())
File "C:\Python37\lib\site-packages\django\urls\resolvers.py", line 408, in _check_custom_error_handlers
handler, param_dict = self.resolve_error_handler(status_code)
File "C:\Python37\lib\site-packages\django\urls\resolvers.py", line 590, in resolve_error_handler
return get_callable(callback), {}
File "C:\Python37\lib\site-packages\django\urls\utils.py", line 28, in get_callable
mod = import_module(mod_name)
File "C:\Python37\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'views'
Traceback (most recent call last):
File "C:/git/si-dash/manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "C:\Python37\lib\site-packages\django\core\management\__init__.py", line 381, in execute_from_command_line
utility.execute()
File "C:\Python37\lib\site-packages\django\core\management\__init__.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Python37\lib\site-packages\django\core\management\base.py", line 323, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Python37\lib\site-packages\django\core\management\commands\runserver.py", line 60, in execute
super().execute(*args, **options)
File "C:\Python37\lib\site-packages\django\core\management\base.py", line 364, in execute
output = self.handle(*args, **options)
File "C:\Python37\lib\site-packages\django\core\management\commands\runserver.py", line 95, in handle
self.run(**options)
File "C:\Python37\lib\site-packages\django\core\management\commands\runserver.py", line 102, in run
autoreload.run_with_reloader(self.inner_run, **options)
File "C:\Python37\lib\site-packages\django\utils\autoreload.py", line 579, in run_with_reloader
start_django(reloader, main_func, *args, **kwargs)
File "C:\Python37\lib\site-packages\django\utils\autoreload.py", line 564, in start_django
reloader.run(django_main_thread)
File "C:\Python37\lib\site-packages\django\utils\autoreload.py", line 275, in run
self.run_loop()
File "C:\Python37\lib\site-packages\django\utils\autoreload.py", line 281, in run_loop
next(ticker)
File "C:\Python37\lib\site-packages\django\utils\autoreload.py", line 321, in tick
state.update(self.loop_files(state, previous_timestamp))
File "C:\Python37\lib\site-packages\django\utils\autoreload.py", line 328, in loop_files
for path, mtime in self.snapshot_files():
File "C:\Python37\lib\site-packages\django\utils\autoreload.py", line 348, in snapshot_files
for file in self.watched_files():
File "C:\Python37\lib\site-packages\django\utils\autoreload.py", line 241, in watched_files
yield from iter_all_python_module_files()
File "C:\Python37\lib\site-packages\django\utils\autoreload.py", line 103, in iter_all_python_module_files
return iter_modules_and_files(modules, frozenset(_error_files))
File "C:\Python37\lib\site-packages\django\utils\autoreload.py", line 128, in iter_modules_and_files
if not path.exists():
File "C:\Python37\lib\pathlib.py", line 1339, in exists
self.stat()
File "C:\Python37\lib\pathlib.py", line 1161, in stat
return self._accessor.stat(self)
OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: '<frozen importlib._bootstrap>'
同样,这个视图布局已经工作了多年,我找不到任何与 2.1.8 和 2.2 相关的urls
或views
发生变化的东西。
我要离开的只是突然ModuleNotFoundError: No module named 'views'
编辑:
在@Alasdair 的帮助下,我已经克服了这个错误,但我仍然不知道为什么会这样。该项目在 2.1.8 上完美运行,文档中没有关于更改您引用handler###
视图的方式的内容。此外,LookupError: No installed app with label 'admin'
在卸载并再次安装 2.2 后,我得到了然后神奇地消失了,这一事实并不让我感觉很好。
解决方案
似乎custom error handlers
是它的原因。
在Django 2.1
我有一个自定义处理程序来处理500 Error
这样的错误:
def error_500_view(request, exception):
return render(request,'500.html')
但Django 2.2
似乎500 Error
处理程序只接受 1 个参数,所以我改为:
def error_500_view(request):
return render(request,'500.html')
一切都恢复正常了。
因此,请确保您的404 Error
处理程序类似于:
def notfound(request, exception):
return render(request,'400.html')
推荐阅读
- ruby-on-rails - application.rb 中 Kernel.spawn 和 rails 的奇怪行为
- apache-flink - 不平衡的 Flink 流式负载
- google-cloud-platform - 将 1000 万条记录的 Google Bigquery 记录发布到 pubsub 主题的最佳选择是什么
- file - 在 TIdMultiPartFormDataStream 中没有“字段名”的 Delphi Indy POST 文件
- java - 如何从 ZK 页面调用后端方法?
- ios - Safari 上的 CSS 动画错误
- celery - Django celery 删除特定任务
- python - 如何一次运行多个环境
- xaml - 如何在 UWP 中的滚动查看器中设置滚动查看器
- r - stat_density2d 平铺几何图形在导出为 PDF 时显示网格