我有多个网站的平面页面。它的管理预览选择
任意站点,在调试到行35-36 of
django.contrib.contenttypes.views.shortcut()
之后非常明显。
解决此问题的最佳方法是什么?
我看到shortcut()
函数需要一个request
对象,所以我可以从那里提取主机,但我更喜欢不修补实时服务器。
我还没有看过捕捉管理网址,所以也许有人可以建议一些不错的解决方案?
答案 0 :(得分:1)
在我看来,这可能被认为是Django中的一个错误,并且至少部分修复将检查当前SITE_ID是否是与该对象相关的站点之一,如果是,则使用该一个而不是任意一个一。您可以使用补丁提交票证。
要修复它而不修补Django,您可能会考虑覆盖flatpages模型的管理编辑表单模板,以便您可以将所需的URL放入该链接而不是默认视图中的URL。我没有足够深入地了解它会有多干净。
另一个选项可能是使用get_absolute_url方法monkeypatch Flatpage模型,该方法实际上返回一个完整的绝对URL,包括域,基于Site.objects.get_current()。域。