【问题标题】:django build absolute url inside a management commanddjango 在管理命令中构建绝对 url
【发布时间】:2014-08-21 21:46:30
【问题描述】:

我们在 django 中使用 reverse 来获取 url,例如。 -

my_url = reverse("name_of_url", kwargs={"param":param, "param2":param2})

在上述情况下,my_url 的格式为 /path1/path2/..

如果我想生成类似的东西 - www.mysite.com/path1/path2/ 我们需要执行以下操作 -

my_url = request.build_absolute_uri(reverse("name_of_url", kwargs={"param":param, "param2":param2}))

这将提供所需格式的 URL。但问题是,我在自定义管理命令中生成 url,并且无法访问 request 变量。有什么办法,我可以生成格式的url - www.mysite.com/path1/path2/

【问题讨论】:

    标签: python django django-urls django-commands


    【解决方案1】:

    不,据我所知,管理命令无法做到这一点。正如您自己意识到的那样,您使用部分request 信息来构建完整的 URL,当您从控制台启动管理命令时,没有任何请求。

    我在项目中所做的是在 settings 中使用您的基本域设置一个名为 BASE_URL 的变量,并使用它来构建您的 URL。

    您也可以查看站点框架:https://docs.djangoproject.com/en/dev/ref/contrib/sites/

    【讨论】:

      猜你喜欢
      • 2012-05-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-19
      • 2012-06-29
      • 1970-01-01
      相关资源
      最近更新 更多