3

我们在 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/

4

1 回答 1

2

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

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

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

于 2014-07-01T10:59:17.250 回答