【问题标题】:Reverse_lazy and URL Loading?Reverse_lazy 和 URL 加载?
【发布时间】:2018-01-20 20:00:08
【问题描述】:

我正试图围绕 Django 概念展开思考,但我在使用 URLResolver reverse_lazy() 时遇到了困难。据我所知,当我想反向到尚未加载的 URL 时,我必须使用 reverse_lazy()。所以当我创建一个 CBV 并声明一个 success_url 时,我使用了 reversy_lazy。这意味着文件执行时不会导入 url。

这让我很困惑,因为我认为服务器会在执行任何操作之前加载所有 URL。那么为什么执行时没有加载 URL 呢?

如果有人能给我一个答案,我会很高兴。

【问题讨论】:

标签: django


【解决方案1】:

首先,URL 解析器本身是惰性的,因此在第一次调用resolve()reverse() 时(通常在第一次请求时)进行加载。但在这种情况下,这并不重要。

在初始化 URL 解析器时,它会导入您的 URL 配置,进而导入您的视图。因此,当您的视图被导入并设置success_url 时,解析器仅完成了初始化的一半。此时调用reverse() 将不起作用,因为解析器还没有所有信息来反转视图名称。

【讨论】:

    猜你喜欢
    • 2018-07-18
    • 2018-02-21
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多