Django如何在管理命令中构建绝对URL

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/

1个回答

2
据我所知,没有办法从管理命令中进行此操作。正如您自己意识到的那样,您使用部分请求信息来构建完整的URL,当您从控制台启动管理命令时,没有请求。

在我的项目中所做的是在settings中设置一个名为BASE_URL的变量,并将其用于构建您的URL。
您还可以检查网站框架:https://docs.djangoproject.com/en/dev/ref/contrib/sites/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接