RemovedInDjango110Warning

本文详细介绍了将Django项目从1.7升级到1.9时,针对URLs配置与Settings中模板配置的必要修改。包括URLs从使用字符串配置转变为直接引用、以及模板配置合并到TEMPLATES中的过程。旨在帮助开发者顺利进行版本升级,避免常见错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Django项目,把django从1.7升级到1.9后,大量报错。需要做如下修改。


1,修改urls.py:


在django1.9里,urls的配置不再支持字符串型的路由。需要先import,然后直接引用。更加清晰。

比如:

urlpatterns = patterns('',
    url(r'^test/',  'httpServer.views.hello.test'),     # 注意,字符串形式
)

改为:

from httpServer.views import hello

# urlpatterns改为list了

urlpatterns = [
    url(r'^test/',  hello.test),      # 直接引用
]

附注:可以用1.9的版本,新生成一个项目,看urls文件。


2,修改settings.py

模板的配置,改变了,所有模板相关的配置,都合并到了TEMPLATES里:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, "httpServer", "templates")],  # list
        'APP_DIRS': True,
        'OPTIONS': {
            # ... some options here ...
            'debug': DEBUG,
        },
    },
]

原来setting里面TEMPLATE_DEBUG = DEBUG 这个选项,合并到了TEMPLATES下的OPTIONS里,如上。






(base) liwei@liweideMacBook-Air demo % python manage.py makemigrations Traceback (most recent call last): File "/Users/liwei/miniconda3/lib/python3.12/site-packages/django/template/utils.py", line 69, in __getitem__ return self._engines[alias] ~~~~~~~~~~~~~^^^^^^^ KeyError: 'django' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/liwei/miniconda3/lib/python3.12/site-packages/django/template/backends/django.py", line 174, in get_package_libraries module = import_module(entry[1]) ^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/liwei/miniconda3/lib/python3.12/importlib/__init__.py", line 90, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1387, in _gcd_import File "<frozen importlib._bootstrap>", line 1360, in _find_and_load File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 935, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 995, in exec_module File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed File "/Users/liwei/miniconda3/lib/python3.12/site-packages/django/contrib/admin/templatetags/admin_static.py", line 5, in <module> from django.utils.deprecation import RemovedInDjango30Warning ImportError: cannot import name 'RemovedInDjango30Warning' from 'django.utils.deprecation' (/Users/liwei/miniconda3/lib/python3.12/site-packages/django/utils/deprecation.py). Did you mean: 'RemovedInDjango60Warning'? The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/Users/liwei/PycharmProjects/demo/manage.py", line 22, in <module> main() File "/Users/liwei/PycharmProjects/demo/manage.py", line 18, in main execute_from_command_line(sys.argv) File "/Users/liwei/miniconda3/lib/python3.12/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line utility.execute() File "/Users/liwei/miniconda3/lib/python3.12/site-packages/django/core/management/__init__.py", line 436, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/Users/liwei/miniconda3/lib/python3.12/site-packages/django/core/management/base.py", line 416, in run_from_argv self.execute(*args, **cmd_options) File "/Users/liwei/miniconda3/lib/python3.12/site-packages/django/core/management/base.py", line 457, in execute self.check(**check_kwargs) File "/Users/liwei/miniconda3/lib/python3.12/site-packages/django/core/management/base.py", line 492, in check all_issues = checks.run_checks( ^^^^^^^^^^^^^^^^^^ File "/Users/liwei/miniconda3/lib/python3.12/site-packages/django/core/checks/registry.py", line 89, in run_checks new_errors = check(app_configs=app_configs, databases=databases) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/liwei/miniconda3/lib/python3.12/site-packages/django/contrib/admin/checks.py", line 79, in check_dependencies for engine in engines.all(): ^^^^^^^^^^^^^ File "/Users/liwei/miniconda3/lib/python3.12/site-packages/django/template/utils.py", line 94, in all return [self[alias] for alias in self] ~~~~^^^^^^^ File "/Users/liwei/miniconda3/lib/python3.12/site-packages/django/template/utils.py", line 85, in __getitem__ engine = engine_cls(params) ^^^^^^^^^^^^^^^^^^ File "/Users/liwei/miniconda3/lib/python3.12/site-packages/django/template/backends/django.py", line 26, in __init__ options["libraries"] = self.get_templatetag_libraries(libraries) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/liwei/miniconda3/lib/python3.12/site-packages/django/template/backends/django.py", line 88, in get_templatetag_libraries libraries = get_installed_libraries() ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/liwei/miniconda3/lib/python3.12/site-packages/django/template/backends/django.py", line 163, in get_installed_libraries module_name: full_name for module_name, full_name in get_template_tag_modules() ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/liwei/miniconda3/lib/python3.12/site-packages/django/template/backends/django.py", line 151, in get_template_tag_modules for name in get_package_libraries(pkg): ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/liwei/miniconda3/lib/python3.12/site-packages/django/template/backends/django.py", line 176, in get_package_libraries raise InvalidTemplateLibrary( django.template.library.InvalidTemplateLibrary: Invalid template library specified. ImportError raised when trying to load 'django.contrib.admin.templatetags.admin_static': cannot import name 'RemovedInDjango30Warning' from 'django.utils.deprecation' (/Users/liwei/miniconda3/lib/python3.12/site-packages/django/utils/deprecation.py)
最新发布
06-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值