python - 不要国际化/翻译 URL

标签 python django django-urls django-1.10

问题

我目前正在尝试从 Django 1.9.8 升级到 Django 1.10.3。然而,目前我的测试失败了,因为出于某种原因,Django 在我 reverse() 时试图翻译/国际化我的 URL。

关于国际化,我没有做任何更改,非常想关闭此“功能”。它不仅没有通过大量测试,而且还有一些项目静态引用该网站的 URL。这意味着该网站上的 URL 不允许更改(否则我将不得不为 Django 提出的每个翻译编辑它们,这将是一个真正的痛苦)。


错误

我在测试中遇到的实际错误如下:

Traceback (most recent call last):
  File "/tests/unit/views/test_index.py", line 14, in setUp
    self.url = reverse('indexpage')
  File "/local/lib/python2.7/site-packages/django/urls/base.py", line 91, in reverse
    return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
  File "/local/lib/python2.7/site-packages/django/urls/resolvers.py", line 346, in _reverse_with_prefix
    possibilities = self.reverse_dict.getlist(lookup_view)
  File "/local/lib/python2.7/site-packages/django/urls/resolvers.py", line 243, in reverse_dict
    return self._reverse_dict[language_code]
KeyError: 'nl-nl'

很明显,Django 正在尝试使用该项目设置中提供的语言代码来做一些事情。


我尝试了什么

我尝试将 USE_I18N 设置为 False。我也为 USE_L10N 尝试过这个。我还尝试删除设置中指定的 LANGUAGE_CODE,但随后抛出的错误是指 en-us 语言代码而不是 nl-nl 语言代码。我还尝试安装 LocaleMiddleware 看看我是否至少可以让错误停止显示,但不幸的是这也没有用。


问题

如何在 Django 中关闭 URL 内化/翻译。或者,如果这不可能,什么是好的替代方案?

提前致谢。

最佳答案

这可能是一个转移注意力的问题(由不同的错误引起)。在这个错误消失之前,我不得不处理加载 urls.py 文件时抛出的几个不同的异常。尝试进入 django shell 并运行这些命令:

from django.urls import reverse
reverse('indexpage')

您应该会看到导致问题的真正错误。解决问题并重复,直到没有更多异常。

关于python - 不要国际化/翻译 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40527063/

相关文章:

python - Django URL 与任何 URL 配置都不匹配

python - 将结构体元胞数组从 Python 传递到 MATLAB

django - 在 Django 1.9 中的应用程序之间导入模型

python - 在 Django 支持的网站上托管 WordPress 等外部 CMS

python - 在 Django 表单发布请求中访问单选/复选框按钮选择

django - 我的 Django 网址不接受破折号

python - 如何在 Python 中绘制第一个楔形位于顶部的饼图? [matplotlib]

python - 使用 anaconda 环境和 pydev 时,为什么 Eclipse 报告找不到 Interpreter?

python - 如何使用一张图表上显示的两个字典中的值来注释 pandas 条形图?

django - get_sucess_url 在 django 中如何工作?