【问题标题】:Django, url configuration reverse question. Gives ImproperConfiguredDjango,url配置反向题。给出不正确的配置
【发布时间】:2020-06-04 14:28:25
【问题描述】:

我尝试使用这 2 行来检查 url reverse 是否有效...: 从 django.urls 导入反向 反向('国家自动完成') 它应该给我: u'/国家-自动完成/' 我之前做过这个并且效果很好,因为我遇到了一些问题并且在环境中做了一些更改(?)。

现在我正在尝试在 cmd->python 中运行这些命令并在环境中使用 swthed,它给了我这个错误:

>>> from django.urls import reverse
>>> reverse('raildict-autocomplete')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\me\Envs\sc_project\lib\site-packages\django\urls\base.py", line 31, in reverse
    resolver = get_resolver(urlconf)
  File "C:\Users\me\Envs\sc_project\lib\site-packages\django\urls\resolvers.py", line 69, in get_resolver
    urlconf = settings.ROOT_URLCONF
  File "C:\Users\me\Envs\sc_project\lib\site-packages\django\conf\__init__.py", line 76, in __getattr__
    self._setup(name)
  File "C:\Users\me\Envs\sc_project\lib\site-packages\django\conf\__init__.py", line 57, in _setup
    raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Requested setting ROOT_URLCONF, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

我做了什么来破坏它,可能最重要的是如何修复它?谢谢!

【问题讨论】:

    标签: django settings


    【解决方案1】:
    def get_absolute_url(self):
        return reverse('src:post')  
    

    遇到这种错误很累,我的错误解决了 这会在执行操作后提供默认反转

    或者您正在转向有问题或不存在的路径。 或使用 reverse_lazy。

    【讨论】:

    • 这是一个非常令人沮丧的错误...我之前没有...我有相同的代码,我以前有...它没有给我带来任何麻烦,但之后尝试,django_filters 和一些用于引导表单的 pip 安装(现在找不到它)并在卸载它们之后......现在我经常遇到这个错误,不管我如何更改我的代码。我试图改变反向的绝对路径,不起作用,路径必须没问题,因为它之前工作得很好。感觉环境被搞砸了。谢谢你的帮助!
    • 我现在也到处都是这样的错误: GET 127.0.0.1:8000/static/autocomplete_light/vendor/select2/dist/… net::ERR_ABORTED 404 (Not Found) ----据我所知,它告诉我我没有安装了自动完成灯...它已安装,我再次重新安装...
    【解决方案2】:

    这有点愚蠢......

    我启动了:来自 cmd 的“python”

    然后:

    >>>from django.urls import reverse
    >>>reverse('sch-autocomplete')
    

    但是,不应该那样做,并且肯定它给了我错误信息。哦!我好难过!但这只是我的错误,谢天谢地......环境很好,路径很好等等。只要做对了:

    python manage.py shell
    >>>from django.urls import reverse
    >>>reverse('sch-autocomplete')
    

    然后它给了我正确的反向路径。我会把它留在这里......因为我在以下方面看到了非常深刻、复杂的答案:请求设置 ROOT_URLCONF,但未配置设置。您必须在访问设置之前定义环境变量 DJANGO_SETTINGS_MODULE 或调用 settings.configure()。 但是我的代码中的问题是表面上的,只是因为我在 cmd 中编码错误。可能对某人有所帮助并节省时间...

    【讨论】:

      猜你喜欢
      • 2021-06-21
      • 1970-01-01
      • 1970-01-01
      • 2012-08-02
      • 1970-01-01
      • 1970-01-01
      • 2018-06-04
      • 1970-01-01
      • 2023-03-26
      相关资源
      最近更新 更多